Merge "[CherryPick] [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context...
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2013-02-01 Nayan Kumar K <nayankk@motorola.com>
2
3         [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
4         https://bugs.webkit.org/show_bug.cgi?id=108694
5
6         Reviewed by NOBODY (OOPS!).
7
8         WEBGL_lose_context is one of the community approved WebGL extension.
9         Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
10         Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
11
12         Tests already exists, modified them to verify the change in extension name.
13
14         * bindings/js/JSWebGLRenderingContextCustom.cpp:
15         (WebCore::toJS):
16         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
17         (WebCore::toV8Object):
18         * html/canvas/WebGLExtension.h:
19         * html/canvas/WebGLLoseContext.cpp:
20         (WebCore::WebGLLoseContext::getName):
21         * html/canvas/WebGLRenderingContext.cpp:
22         (WebCore):
23         (WebCore::WebGLRenderingContext::getExtension):
24         (WebCore::WebGLRenderingContext::getSupportedExtensions):
25
26 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
27
28         Deleting across multiple paragraphs can change the style of surrounding text
29         https://bugs.webkit.org/show_bug.cgi?id=97266
30
31         Reviewed by Levi Weintraub.
32
33         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
34         even when we're not annotating. We don't want to preserve all styles because it's against
35         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
36         styles from a mail blockquote because that's not a style the user has applied. See the comment
37         in EditingStyle::wrappingStyleForSerialization.
38
39         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
40
41         * editing/EditingStyle.cpp:
42         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
43         (WebCore::EditingStyle::wrappingStyleForSerialization):
44
45 2012-09-24  Tony Chang  <tony@chromium.org>
46
47         flex-grow should be 1 when omitted from flex shorthand
48         https://bugs.webkit.org/show_bug.cgi?id=97480
49
50         Reviewed by Ojan Vafai.
51
52         We were using 0, based on an outdated version of the spec.
53
54         Tests: css3/flexbox/flex-property-parsing.html
55                css3/flexbox/flex-algorithm.html: New test case.
56
57         * css/CSSParser.cpp:
58         (WebCore::CSSParser::parseFlex):
59
60 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
61
62         WebKit ignores column-rules wider than column-gap
63         https://bugs.webkit.org/show_bug.cgi?id=15553
64
65         Paint column rules even if they are wider than the gap.
66         Rules wider than the gap should just overlap with column contents.
67
68         Reviewed by Eric Seidel.
69
70         Test: fast/multicol/rule-thicker-than-gap.html
71
72         * rendering/RenderBlock.cpp:
73         (WebCore::RenderBlock::paintColumnRules):
74
75 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
76
77         [EFL] Cancel mark on search field is not displayed
78         https://bugs.webkit.org/show_bug.cgi?id=94880
79
80         Reviewed by Kenneth Rohde Christiansen.
81
82         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
83         So, the button isn't showing up in search input field. Besides the button size should be scaled based
84         on the font size as chromium, qt, and blackberry ports.
85
86         Tests: fast/forms/search-cancel-button-style-sharing.html
87                fast/forms/search-rtl.html
88         * platform/efl/RenderThemeEfl.cpp:
89         (WebCore):
90         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
91
92 2012-08-30  Kangil Han  <kangil.han@samsung.com>
93
94         Fix compile warning when enable tiled backing store
95         https://bugs.webkit.org/show_bug.cgi?id=95422
96
97         Reviewed by Kentaro Hara.
98
99         Fixed compile warning messages when enabled tiled backing store.
100         In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
101         However, if minus value is assigned to the comparison, it would be critical.
102         So, it was modified as using int value in tiled coordinate calculation.
103
104         * page/Frame.cpp:
105         (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
106         * platform/graphics/TiledBackingStore.cpp:
107         (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
108         (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
109         (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
110         (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
111         * platform/graphics/cairo/GLContext.cpp:
112         (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
113
114 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
115
116         TextureMapperGL: fix -Wsign-compare compilation warning.
117         https://bugs.webkit.org/show_bug.cgi?id=97928
118
119         Reviewed by Martin Robinson.
120
121         Use size_t rather than int to iterate over FilterOperations.
122
123         * platform/graphics/texmap/TextureMapperGL.cpp:
124         (WebCore::BitmapTextureGL::applyFilters):
125
126 2013-03-11  Kent Tamura  <tkent@chromium.org>
127
128         Inappropriate validation message for required number/date input elements
129         https://bugs.webkit.org/show_bug.cgi?id=111982
130
131         Reviewed by Kentaro Hara.
132
133         For validation message, badInput messages should take precedence
134         over valueMissing messages because users already filled out the
135         field with a bad value.
136
137         Tests: Update fast/forms/validationMessage.html
138
139         * html/InputType.cpp:
140         (WebCore::InputType::validationMessage):
141         Check badInput first.
142
143 2013-03-11  Kent Tamura  <tkent@chromium.org>
144
145         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
146         https://bugs.webkit.org/show_bug.cgi?id=103195
147
148         Reviewed by Kentaro Hara.
149
150         HTMLInputElement::subtreeHasChanged is called only if the input is
151         a text field. The code should be moved to TextFieldInputType.
152
153         No new tests. This should not change any behavior.
154
155         * html/HTMLInputElement.cpp:
156         - Remove unnecessary NumberInputType.h inclusion.
157         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
158         (WebCore::HTMLInputElement::subtreeHasChanged):
159         Move the code to TextFieldInputType::subtreeHasChanged except
160         calculateAndAdjustDirectionality, which is a protected member of
161         HTMLElement.
162         * html/HTMLInputElement.h:
163         (HTMLInputElement): Remove convertFromVisibleValue.
164
165         * html/InputType.cpp:
166         Move convertFromVisibleValue to TextFieldInputType.
167         (WebCore::InputType::subtreeHasChanged):
168         Add ASSERT_NOT_REACHED.
169         * html/InputType.h:
170         (InputType): Remove convertFromVisibleValue.
171
172         * html/TextFieldInputType.cpp:
173         (WebCore::TextFieldInputType::convertFromVisibleValue):
174         Moved from InputType.
175         (WebCore::TextFieldInputType::subtreeHasChanged):
176         Moved from HTMLInputElement. A latter part is moved to
177         didSetValueByUserEdit to be hooked by SearchInputType.
178         (WebCore::TextFieldInputType::didSetValueByUserEdit):
179         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
180         * html/TextFieldInputType.h:
181         (TextFieldInputType):
182         - Move convertFromVisibleValue from InputType.
183         - Add didSetValueByUserEdit and subtreeHasChanged.
184
185         * html/SearchInputType.cpp:
186         (WebCore::SearchInputType::didSetValueByUserEdit):
187         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
188         * html/SearchInputType.h:
189         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
190
191 2012-11-22  Kentaro Hara  <haraken@chromium.org>
192
193         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
194         https://bugs.webkit.org/show_bug.cgi?id=103061
195
196         Reviewed by Adam Barth.
197
198         This is an incremental step to remove WorkerExecutionContextProxy.
199         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
200         This patch also renames methods so that the names become consistent
201         between the main thread and workers.
202
203         No tests. No change in behavior.
204
205         * bindings/v8/V8Initializer.cpp:
206         (WebCore::reportFatalErrorInMainThread):
207         (WebCore::messageHandlerInMainThread):
208         (WebCore::failedAccessCheckCallbackInMainThread):
209         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
210         (WebCore::reportFatalErrorInWorker):
211         (WebCore):
212         (WebCore::messageHandlerInWorker):
213         (WebCore::V8Initializer::initializeWorkerIfNeeded):
214         * bindings/v8/V8Initializer.h:
215         (V8Initializer):
216         * bindings/v8/WorkerContextExecutionProxy.cpp:
217         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
218         * bindings/v8/WorkerContextExecutionProxy.h:
219         (WorkerContextExecutionProxy):
220
221 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
222
223         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
224         https://bugs.webkit.org/show_bug.cgi?id=103189
225
226         Reviewed by Kenneth Rohde Christiansen.
227
228         Check if the entry size and type changed in
229         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
230         useless processing if one of them did not change.
231
232         Remove useless call to cairo_surface_finish() since
233         we are using a smart pointer for the surface.
234
235         Resize the edge object *after* loading its content
236         from the theme file as it seems more logical this
237         way.
238
239         No new tests, no behavior change for layout tests.
240
241         * platform/efl/RenderThemeEfl.cpp:
242         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
243         * platform/efl/RenderThemeEfl.h:
244         (ThemePartCacheEntry):
245
246 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
247
248         Rename DynamicNodeList to LiveNodeList
249         https://bugs.webkit.org/show_bug.cgi?id=103197
250
251         Reviewed by Ojan Vafai.
252
253         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
254         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
255         "A collection (either NodeList or HTMLCollection) can be either live or static".
256
257         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
258         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
259         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
260
261         This patch completes the series of simplification of NodeList/HTMLCollection classes.
262
263         * CMakeLists.txt:
264         * GNUmakefile.list.am:
265         * Target.pri:
266         * WebCore.gypi:
267         * WebCore.xcodeproj/project.pbxproj:
268         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
269         (WebCore::getNamedItems):
270         * bindings/js/JSNodeListCustom.cpp:
271         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
272         * bindings/v8/custom/V8NodeListCustom.cpp:
273         (WebCore::V8NodeList::opaqueRootForGC):
274         * dom/ChildNodeList.cpp:
275         (WebCore::ChildNodeList::ChildNodeList):
276         (WebCore::ChildNodeList::nodeMatches):
277         * dom/ChildNodeList.h:
278         * dom/ClassNodeList.cpp:
279         (WebCore::ClassNodeList::ClassNodeList):
280         * dom/ClassNodeList.h:
281         * dom/DOMAllInOne.cpp:
282         * dom/Document.cpp:
283         (WebCore::Document::registerNodeListCache):
284         (WebCore::Document::unregisterNodeListCache):
285         (WebCore):
286         * dom/Document.h:
287         (WebCore):
288         (Document):
289         * dom/DynamicNodeList.cpp: Removed.
290         * dom/DynamicNodeList.h: Removed.
291         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
292         (WebCore::LiveNodeListBase::rootNode):
293         (WebCore::LiveNodeListBase::invalidateCache):
294         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
295         (WebCore::LiveNodeListBase::reportMemoryUsage):
296         (WebCore::LiveNodeList::namedItem):
297         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
298         (WebCore::LiveNodeListBase::LiveNodeListBase):
299         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
300         (WebCore::LiveNodeList::LiveNodeList):
301         (WebCore::LiveNodeList::~LiveNodeList):
302         (LiveNodeList):
303         * dom/MicroDataItemList.cpp:
304         (WebCore::MicroDataItemList::MicroDataItemList):
305         * dom/MicroDataItemList.h:
306         * dom/NameNodeList.cpp:
307         (WebCore::NameNodeList::NameNodeList):
308         * dom/NameNodeList.h:
309         * dom/Node.cpp:
310         (WebCore::shouldInvalidateNodeListCachesForAttr):
311         (WebCore::Document::invalidateNodeListCaches):
312         * dom/Node.h:
313         (WebCore):
314         * dom/NodeList.h:
315         (WebCore::NodeList::isLiveNodeList):
316         * dom/NodeRareData.h:
317         (NodeListsNodeData):
318         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
319         (WebCore::NodeListsNodeData::removeCacheWithName):
320         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
321         (WebCore::NodeListsNodeData::adoptTreeScope):
322         * dom/PropertyNodeList.cpp:
323         (WebCore::PropertyNodeList::PropertyNodeList):
324         * dom/PropertyNodeList.h:
325         * dom/TagNodeList.cpp:
326         (WebCore::TagNodeList::TagNodeList):
327         * dom/TagNodeList.h:
328         * html/HTMLCollection.cpp:
329         (WebCore::HTMLCollection::HTMLCollection):
330         (WebCore::LiveNodeListBase::iterateForNextNode):
331         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
332         (WebCore::LiveNodeListBase::itemBefore):
333         (WebCore::LiveNodeListBase::itemAfter):
334         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
335         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
336         (WebCore::LiveNodeListBase::setItemCache):
337         (WebCore::LiveNodeListBase::length):
338         (WebCore::LiveNodeListBase::item):
339         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
340         * html/HTMLCollection.h:
341         * html/LabelsNodeList.cpp:
342         (WebCore::LabelsNodeList::LabelsNodeList):
343         * html/LabelsNodeList.h:
344         * html/RadioNodeList.cpp:
345         (WebCore::RadioNodeList::RadioNodeList):
346         * html/RadioNodeList.h:
347
348 2012-10-08  Robert Hogan  <robert@webkit.org>
349
350         Changing position:relative to position:static results in mis-positioned div
351         https://bugs.webkit.org/show_bug.cgi?id=26397
352
353         Reviewed by Ojan Vafai.
354
355         When a block changes position from relative to static it is no longer the containing block for any
356         positioned objects it may have. If any of those positioned objects actually have a position specified
357         they are going to need a layout as their new containing block will likely have a different location they
358         need to offset from. Positioned objects without a specified position always get a layout anyway 
359         in layoutPositionedObjects() so no need to worry about them in this situation. 
360
361         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
362
363         * rendering/RenderBlock.cpp:
364         (WebCore::RenderBlock::styleWillChange):
365         (WebCore::RenderBlock::layoutPositionedObjects):
366         (WebCore::RenderBlock::removePositionedObjects):
367         * rendering/RenderBlock.h:
368         (RenderBlock):
369
370 2012-11-25  Kent Tamura  <tkent@chromium.org>
371
372         Correct input[type=number] value sanitization for user-input
373         https://bugs.webkit.org/show_bug.cgi?id=103018
374
375         Reviewed by Kentaro Hara.
376
377         If a number field has non-number string, HTMLInputElement::value is not
378         updated and returns the past valid value. It doesn't match to the value
379         sanitization algorithm defined by the HTML standard [1], and Opera's
380         behavior. We should sanitize non-number strings to "".
381
382         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
383         > The value sanitization algorithm is as follows: If the value of the
384         > element is not a valid floating-point number, then set it to the empty
385         > string instead.
386
387         No new tests. Update existing tests;
388         fast/forms/number/number-commit-valid-only.html and
389         fast/forms/number/number-unacceptable-style.html
390
391         * html/HTMLInputElement.cpp:
392         (WebCore::HTMLInputElement::subtreeHasChanged):
393         Remove isAcceptableValue check.
394
395         * html/HTMLInputElement.h:
396         (HTMLInputElement): isAcceptableValue is no longer needed.
397         * html/InputType.cpp: Remove isAcceptableValue.
398         * html/InputType.h: Ditto.
399         * html/NumberInputType.cpp: Ditto.
400         (WebCore::NumberInputType::hasUnacceptableValue):
401         Fold the isAcceptableValue content into this.
402         * html/NumberInputType.h:
403         (NumberInputType): Remove isAcceptableValue.
404
405 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
406
407         Remove conversion to/from float and float division from ImageFrame::setRGBA
408         https://bugs.webkit.org/show_bug.cgi?id=103693
409
410         Reviewed by Brent Fulgham.
411
412         Replace floating point operations used for alpha premultiply with fixed point arithmetic
413         which is basically integer operations. Allows to shave extra couple percent from decoding
414         images with transparency.
415
416         Covered by existing tests.
417
418         * platform/image-decoders/ImageDecoder.h:
419         (ImageFrame):
420         (WebCore::ImageFrame::fixPointUnsignedMultiply):
421         (WebCore::ImageFrame::setRGBA):
422
423 2012-11-30  Jer Noble  <jer.noble@apple.com>
424
425         Unreviewed Windows build fix.
426
427         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
428
429         * html/MediaController.cpp:
430         (MediaController::playbackState):
431
432 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
433
434         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
435         https://bugs.webkit.org/show_bug.cgi?id=101132
436
437         Reviewed by Gyuyoung Kim.
438
439         Add mutex locker for the ecore pipe to ensure thread-safety of
440         RunLoop::wakeUp().
441
442         RunLoop::wakeUp() can be called by multiple thread. It uses
443         ecore_pipe_write() function but the function is not thread-safe.
444
445         * platform/RunLoop.h:
446         (RunLoop):
447         * platform/efl/RunLoopEfl.cpp:
448         (WebCore::RunLoop::wakeUp):
449
450 2012-11-09  Huang Dongsung  <luxtella@company100.net>
451
452         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
453         https://bugs.webkit.org/show_bug.cgi?id=101656
454
455         Reviewed by Kenneth Rohde Christiansen.
456
457         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
458         smartly, but currently TiledBackingStore expects a contents rect is big enough
459         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
460         is usually wrong expectation.
461
462         We must compute cover and keep rects using the visibleRect, instead of
463         the rect intersecting the visibleRect with m_rect, because TBS can be
464         used as a backing store of GraphicsLayer and the visible rect usually
465         does not intersect with m_rect.
466         In the below case, the intersecting rect is an empty.
467
468          +---------------+
469          |               |
470          |   m_rect      |
471          |       +-------|-----------------------+
472          |       | HERE  |  cover or keep        |
473          +---------------+      rect             |
474                  |         +---------+           |
475                  |         | visible |           |
476                  |         |  rect   |           |
477                  |         +---------+           |
478                  |                               |
479                  |                               |
480                  +-------------------------------+
481
482         We must create or keep the tiles in the HERE region. Currently in the
483         case, we do not create or keep tiles on the HERE region. Moreover, in
484         the case, we early return, which means we don't remove any tiles. It
485         causes to waste heap and video memory.
486
487         This patch changes TiledBackingStore to manage tiles smartly for
488         Coordinated Graphics.
489
490         Changing cache policy is not testable in layout tests.
491
492         * platform/graphics/TiledBackingStore.cpp:
493         (WebCore::TiledBackingStore::visibleRect):
494         (WebCore::TiledBackingStore::visibleAreaIsCovered):
495         (WebCore::TiledBackingStore::createTiles):
496         (WebCore::TiledBackingStore::adjustForContentsRect):
497         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
498         * platform/graphics/TiledBackingStore.h:
499         (TiledBackingStore):
500
501 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
502
503         SQLResultSet.rowsAffected not cleared
504         https://bugs.webkit.org/show_bug.cgi?id=46070
505
506         Reviewed by Kenneth Rohde Christiansen.
507
508         SQLResultSet.rowsAffected is supposed to return the number
509         of rows that were changed by the statement. For "SELECT"
510         statements, it should return 0.
511
512         However, our implementation currently relies on sqlite3_changes()
513         to compute this value. sqlite3_changes() returns the number of
514         direct row changes in the most recent INSERT, UPDATE, or DELETE
515         statement within the same trigger context. Unfortunately, the
516         most recent INSERT, UPDATE, or DELETE statement may not be the
517         last statement. As a consequence, if you INSERT 1 row, then
518         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
519         INSERT and the SELECT statements.
520
521         The proposed solution is to use sqlite3_total_changes() instead
522         of sqlite3_changes(). sqlite3_total_changes() returns the number
523         of row changes caused by INSERT, UPDATE or DELETE statements since
524         the database connection was opened. We now store the value
525         returned by sqlite3_total_changes() before each statement in
526         order to return the count difference in
527         SQLiteDatabase::lastChanges().
528
529         Test: storage/websql/execute-sql-rowsAffected.html
530
531         * platform/sql/SQLiteDatabase.cpp:
532         (WebCore::SQLiteDatabase::SQLiteDatabase):
533         (WebCore::SQLiteDatabase::updateLastChangesCount):
534         (WebCore):
535         (WebCore::SQLiteDatabase::lastChanges):
536         * platform/sql/SQLiteDatabase.h:
537         (SQLiteDatabase):
538         * platform/sql/SQLiteStatement.cpp:
539         (WebCore::SQLiteStatement::step):
540
541 2012-11-20  Keishi Hattori  <keishi@webkit.org>
542
543         Week picker width is too small
544         https://bugs.webkit.org/show_bug.cgi?id=102766
545
546         Reviewed by Kent Tamura.
547
548         The width of week picker was too small because we were forgetting about
549         the week number column when calculating the desired width.
550
551         No new tests. Covered by week-picker-appearance*.html.
552
553         * Resources/pagepopups/calendarPicker.css:
554         (.week-mode .week-column): Needs to be table-cell.
555         * Resources/pagepopups/calendarPicker.js:
556         (CalendarPicker.prototype.fixWindowSize):
557
558 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
559
560         [GTK] no volume slider in HTML5 media element controls
561         https://bugs.webkit.org/show_bug.cgi?id=97192
562
563         Reviewed by Philippe Normand.
564
565         r115829 was causing this regression so it was partially
566         reverted. The revert causes some small regressions, in the tests
567         but it is better to have the volume slider shown.
568
569         * css/mediaControlsGtk.css:
570         (audio::-webkit-media-controls-panel)
571         (video::-webkit-media-controls-panel): Partially reverted
572         r115829.
573
574 2012-11-19  Antti Koivisto  <antti@apple.com>
575
576         Collect user style sheets in DocumentStyleSheetCollection
577         https://bugs.webkit.org/show_bug.cgi?id=102683
578
579         Reviewed by Andreas Kling.
580
581         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
582         
583         * css/StyleResolver.cpp:
584         (WebCore::StyleResolver::StyleResolver):
585         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
586         (WebCore::collectCSSOMWrappers):
587         * css/StyleResolver.h:
588         (StyleResolver):
589         * dom/DocumentStyleSheetCollection.cpp:
590         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
591         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
592         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
593         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
594         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
595         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
596         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
597         
598             Factor the StyleResolver updating code to function.
599
600         (WebCore):
601         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
602         
603             Collect the user style sheets. Some renaming and other minor refactoring.
604
605         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
606         * dom/DocumentStyleSheetCollection.h:
607         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
608         
609             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
610             similar to activeAuthorStyleSheets.
611
612         (DocumentStyleSheetCollection):
613         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
614
615 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
616
617         Remove unneeded optimization in Element::isInTopLayer
618         https://bugs.webkit.org/show_bug.cgi?id=102772
619
620         Reviewed by Andreas Kling.
621
622         There's no reason to worry about calling elementRareData() multiple
623         times in this non performance sensitive code path as it's only used
624         in HTMLDialogElement's showModal and close methods.
625
626         No new tests, just simplification.
627
628         * dom/Element.cpp:
629         (WebCore::Element::setIsInTopLayer):
630
631 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
632
633         Simplify Element::isSpellCheckingEnabled
634         https://bugs.webkit.org/show_bug.cgi?id=102779
635
636         Reviewed by Andreas Kling.
637
638         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
639         and can be simplified by just calling that.
640
641         No new tests, just simplification.
642
643         * dom/Element.cpp:
644         (WebCore::Element::isSpellCheckingEnabled):
645
646 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
647
648         Apply DeviceController as parent class of DeviceMotionController.
649         https://bugs.webkit.org/show_bug.cgi?id=102578
650
651         Reviewed by Hajime Morita.
652
653         DeviceController needs to be applied as parent class of DeviceMotionController
654         because DeviceController which is extracted as parent class of
655         DeviceMotionController and DeviceOrientationController is already added.
656         Therefore duplicated implementation can be removed.
657
658         Covered by existing tests.
659
660         * dom/DeviceMotionClient.h:
661         * dom/DeviceMotionController.cpp:
662         (WebCore::DeviceMotionController::DeviceMotionController):
663         (WebCore::DeviceMotionController::didChangeDeviceMotion):
664         (WebCore::DeviceMotionController::deviceMotionClient):
665         (WebCore::DeviceMotionController::hasLastData):
666         (WebCore::DeviceMotionController::getLastEvent):
667         (WebCore::DeviceMotionController::from):
668         (WebCore):
669         * dom/DeviceMotionController.h:
670         (WebCore):
671         (WebCore::DeviceMotionController::~DeviceMotionController):
672         (DeviceMotionController):
673         * dom/Document.cpp:
674         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
675         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
676         (WebCore::Document::suspendActiveDOMObjects):
677         (WebCore::Document::resumeActiveDOMObjects):
678         * loader/EmptyClients.h:
679         * page/DOMWindow.cpp:
680         (WebCore::DOMWindow::addEventListener):
681         (WebCore::DOMWindow::removeEventListener):
682         (WebCore::DOMWindow::removeAllEventListeners):
683
684 2012-11-20  Kentaro Hara  <haraken@chromium.org>
685
686         [V8] Remove V8ParameterBase
687         https://bugs.webkit.org/show_bug.cgi?id=102774
688
689         Reviewed by Adam Barth.
690
691         V8ParameterBase is a redundant indirection.
692         We can flatten methods of V8ParameterBase to V8Parameter.
693
694         No tests. No change in behavior.
695
696         * bindings/v8/V8StringResource.h:
697         (WebCore::V8Parameter::V8Parameter):
698         (V8Parameter):
699         (WebCore::V8Parameter::toString):
700         (WebCore::::prepare):
701
702 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
703
704         Use localized date-time format in datetime input
705         https://bugs.webkit.org/show_bug.cgi?id=102769
706
707         Reviewed by Kent Tamura.
708
709         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
710         to its subclasses and use platform-specific methods to get date-time pattern.
711         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
712         pattern for Windows.
713
714         Test: fast/forms/datetime/datetime-appearance-l10n.html
715
716         * platform/text/LocaleICU.cpp:
717         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
718         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
719         (WebCore):
720         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
721         * platform/text/LocaleICU.h:
722         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
723         * platform/text/LocaleNone.cpp:
724         (LocaleNone):
725         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
726         (WebCore):
727         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
728         * platform/text/PlatformLocale.cpp:
729         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
730         * platform/text/PlatformLocale.h:
731         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
732         * platform/text/mac/LocaleMac.h:
733         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
734         * platform/text/mac/LocaleMac.mm:
735         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
736         (WebCore):
737         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
738         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
739         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
740         * platform/text/win/LocaleWin.cpp:
741         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
742         (WebCore):
743         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
744         * platform/text/win/LocaleWin.h:
745         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
746
747 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
748
749         Unreviewed, rolling out r135257.
750         http://trac.webkit.org/changeset/135257
751         https://bugs.webkit.org/show_bug.cgi?id=102777
752
753         Broke Chromium Debug compilation (Requested by yurys on
754         #webkit).
755
756         * bindings/v8/DOMDataStore.h:
757         (WebCore::DOMDataStore::getNode):
758
759 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
760
761         Web Inspector: Revert r133149: breaks revision reverting
762         https://bugs.webkit.org/show_bug.cgi?id=102672
763
764         Reviewed by Yury Semikhatsky.
765
766         * inspector/front-end/JavaScriptSourceFrame.js:
767         (WebInspector.JavaScriptSourceFrame):
768         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
769         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
770         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
771
772 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
773
774         [Qt][Win] Unreviewed speculative buildfix after r135217.
775
776         * platform/win/WindowsExtras.h:
777
778 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
779
780         Unreviewed. Fix Chromium Win compilation after r135255.
781         https://bugs.webkit.org/show_bug.cgi?id=97803
782
783         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
784         was deleted in the aforementioned change.
785
786 2012-11-19  Kentaro Hara  <haraken@chromium.org>
787
788         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
789         https://bugs.webkit.org/show_bug.cgi?id=102158
790
791          Reviewed by Adam Barth.
792
793         A follow-up patch for r135230. This patch adds a correct ASSERTION.
794
795         No tests. No change in behavior.
796
797         * bindings/v8/DOMDataStore.h:
798         (WebCore::DOMDataStore::getNode):
799
800 2012-11-19  Kentaro Hara  <haraken@chromium.org>
801
802         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
803         https://bugs.webkit.org/show_bug.cgi?id=102757
804
805         Reviewed by Adam Barth.
806
807         In CodeGeneratorJS.pm $implClassName and $interfaceName are
808         equivalent. We're using them interchangeably. We should replace
809         $implClassName with $interfaceName.
810
811         No tests. No change in behavior.
812
813         * bindings/scripts/CodeGeneratorJS.pm:
814         (AddClassForwardIfNeeded):
815         (GenerateGetOwnPropertySlotBody):
816         (GenerateGetOwnPropertyDescriptorBody):
817         (GenerateHeader):
818         (GenerateOverloadedFunction):
819         (GenerateImplementation):
820         (GenerateParametersCheck):
821         (GenerateImplementationFunctionCall):
822         (NativeToJSValue):
823
824 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
825
826         Port DragDataWin.cpp to WinCE
827         https://bugs.webkit.org/show_bug.cgi?id=97803
828
829         Reviewed by Brent Fulgham.
830
831         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
832
833         * PlatformWinCE.cmake:
834         * platform/win/DragDataWin.cpp:
835         (WebCore::DragData::containsFiles):
836         (WebCore::DragData::numberOfFiles):
837         (WebCore::DragData::asFilenames):
838         * platform/wince/DragDataWinCE.cpp: Removed.
839
840 2012-11-19  Pan Deng  <pan.deng@intel.com>
841
842         [Web Inspector] This patch makes script line number search-able in Timeline panel.
843         https://bugs.webkit.org/show_bug.cgi?id=101910.
844
845         Reviewed by Pavel Feldman.
846
847         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
848
849         No new tests. 
850
851         * inspector/front-end/TimelinePanel.js:
852         (WebInspector.TimelineRecordListRow.prototype.update):
853         (WebInspector.TimelineRecordListRow.testContentMatching):
854         * inspector/front-end/TimelinePresentationModel.js:
855         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
856         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
857         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
858         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
859         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
860
861 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
862
863         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
864         https://bugs.webkit.org/show_bug.cgi?id=102765
865
866         Reviewed by Ojan Vafai.
867
868         If parentRenderer() was null then we return early from
869         createRendererIfNeeded() because shouldCreateRenderer() will return false
870         so there's no reason to check for it again.
871
872         Additionally if either parentRenderer() or style() is null then
873         implementations of rendererIsNeeded() will crash, so add asserts to
874         make this assumption more clear.
875
876         No new tests, just simplification.
877
878         * dom/NodeRenderingContext.cpp:
879         (WebCore::NodeRendererFactory::createRendererIfNeeded):
880
881 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
882
883         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
884         https://bugs.webkit.org/show_bug.cgi?id=102756
885
886         Reviewed by Hajime Morita.
887
888         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
889
890         No new tests, simple refactoring.
891
892         * dom/ComposedShadowTreeWalker.cpp:
893         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
894         * dom/ContainerNode.cpp:
895         (WebCore::childAttachedAllowedWhenAttachingChildren):
896         * html/shadow/ContentDistributor.cpp:
897         (WebCore::ContentDistributor::invalidate):
898         * html/shadow/InsertionPoint.cpp:
899         (WebCore::InsertionPoint::isActive):
900         * html/shadow/InsertionPoint.h:
901         (WebCore::toInsertionPoint):
902         (WebCore::isActiveInsertionPoint):
903         (WebCore::isLowerEncapsulationBoundary):
904         (WebCore::parentNodeForDistribution):
905         * testing/Internals.cpp:
906         (WebCore::Internals::isValidContentSelect):
907
908 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
909
910         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
911         https://bugs.webkit.org/show_bug.cgi?id=101703
912
913         Reviewed by Hajime Morita.
914
915         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
916         setPseudo()/pseudo() instead.
917
918         No new tests, simple refactoring.
919
920         * html/shadow/ProgressShadowElement.cpp:
921         (WebCore::ProgressInnerElement::ProgressInnerElement):
922         * html/shadow/ProgressShadowElement.h:
923         (ProgressInnerElement):
924         (WebCore::ProgressBarElement::ProgressBarElement):
925         (ProgressBarElement):
926         (WebCore::ProgressValueElement::ProgressValueElement):
927
928 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
929
930         Unreviewed. Fix Chromium Debug compilation after r135230.
931         https://bugs.webkit.org/show_bug.cgi?id=102158
932
933         Removed ASSERT that used instance field in a static method.
934
935         * bindings/v8/DOMDataStore.h:
936         (WebCore::DOMDataStore::getWrapperFromObject):
937
938 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
939
940         [Blackberry] When a frame is being detached, cancel all its network jobs.
941         https://bugs.webkit.org/show_bug.cgi?id=102758
942
943         Reviewed by George Staikos.
944
945         I use FrameDestructionObserver to refactor Networkjob code.
946         NetworkJob is inheriting from FrameDestructionObserver to be
947         aware of frame's destroyed. When a frame is being detached,
948         the willDetachPage() can be called in which we can cancel 
949         the job. This patch reverted the fix for RIM PR134207 as well.
950
951         Manually test is on 
952         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
953         which triggers a ping loader.
954
955         No behavior changed, no new layout tests.
956
957         * platform/network/blackberry/NetworkJob.cpp:
958         (WebCore::NetworkJob::NetworkJob):
959         (WebCore::NetworkJob::initialize):
960         (WebCore::NetworkJob::handleNotifyHeaderReceived):
961         (WebCore::NetworkJob::startNewJobWithRequest):
962         (WebCore::NetworkJob::frameDestroyed):
963         (WebCore):
964         (WebCore::NetworkJob::willDetachPage):
965         * platform/network/blackberry/NetworkJob.h:
966         (NetworkJob):
967         * platform/network/blackberry/NetworkManager.cpp:
968         (WebCore::NetworkManager::startJob):
969         * platform/network/blackberry/NetworkManager.h:
970         (NetworkManager):
971         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
972         (WebCore::ResourceHandle::start):
973         (WebCore::ResourceHandle::loadResourceSynchronously):
974
975 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
976
977         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
978         https://bugs.webkit.org/show_bug.cgi?id=84796
979
980         Reviewed by Julien Chaffraix.
981
982         This adds the top layer element stack to Document. The Fullscreen
983         specification mandates that we track the ordering of the DOM nodes in
984         the top layer, not the renderers. That makes it hard to implement on
985         the rendering side only.
986
987         Elements in the top layer get a layer. Layers in the top layer are
988         added to the root layer's child list after normal layers and in the
989         order of the top layer stack. This way, the top layer appears above
990         all other stacking contexts and in the desired order.
991
992         In addition, top layer renderers are added as children of RenderView
993         in top layer order. This is to satisfy requirements such as the
994         containing block of an element in the top layer is the initial
995         containing block. It also allows RenderLayer to know the proper
996         stacking order of the layers without going directly from the top layer
997         elements to their layers.
998
999         So far, only modal dialog elements can be added to the top layer.
1000         The plan is to make the Fullscreen API also use the top layer.
1001
1002         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
1003                fast/dom/HTMLDialogElement/top-layer-display-none.html
1004                fast/dom/HTMLDialogElement/top-layer-nesting.html
1005                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
1006                fast/dom/HTMLDialogElement/top-layer-stacking.html
1007
1008         * WebCore.exp.in:
1009         * css/StyleResolver.cpp:
1010         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
1011         * dom/Document.cpp:
1012         (WebCore):
1013         (WebCore::Document::addToTopLayer):
1014         (WebCore::Document::removeFromTopLayer):
1015         * dom/Document.h:
1016         (Document):
1017         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
1018         * dom/Element.cpp:
1019         (WebCore::Element::removedFrom):
1020         (WebCore):
1021         (WebCore::Element::isInTopLayer):
1022         (WebCore::Element::setIsInTopLayer):
1023         * dom/Element.h:
1024         * dom/ElementRareData.h:
1025         (ElementRareData):
1026         * dom/Node.cpp:
1027         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
1028         regular position in the render tree.
1029         * dom/NodeRareData.h:
1030         (WebCore::NodeRareData::NodeRareData):
1031         (NodeRareData):
1032         (WebCore::NodeRareData::isInTopLayer):
1033         (WebCore::NodeRareData::setIsInTopLayer):
1034         * dom/NodeRenderingContext.cpp:
1035         (WebCore):
1036         (WebCore::adjustInsertionPointForTopLayerElement):
1037         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
1038         in top layer stacking order.
1039         * html/HTMLDialogElement.cpp:
1040         (WebCore::HTMLDialogElement::close):
1041         (WebCore::HTMLDialogElement::showModal):
1042         * rendering/RenderLayer.cpp:
1043         (WebCore):
1044         (WebCore::RenderLayer::isInTopLayer):
1045         (WebCore::RenderLayer::isInTopLayerSubtree):
1046         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
1047         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
1048         * rendering/RenderLayer.h:
1049         (RenderLayer):
1050
1051 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1052
1053         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
1054         https://bugs.webkit.org/show_bug.cgi?id=102749
1055
1056         Reviewed by Adam Barth.
1057
1058         $dataNode is misnamed. It should be renamed to $interface.
1059
1060         No tests. No change in behavior.
1061
1062         * bindings/scripts/CodeGeneratorObjC.pm:
1063         (GenerateInterface):
1064         (GetParentImplClassName):
1065         (GetParentAndProtocols):
1066         (GenerateHeader):
1067         (GenerateImplementation):
1068
1069 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1070
1071         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
1072         https://bugs.webkit.org/show_bug.cgi?id=102747
1073
1074         Reviewed by Adam Barth.
1075
1076         $dataNode is misnamed. It should be $interface.
1077
1078         No tests. No change in behavior.
1079
1080         * bindings/scripts/CodeGeneratorV8.pm:
1081         (GenerateInterface):
1082         (NeedsCustomOpaqueRootForGC):
1083         (GetGenerateIsReachable):
1084         (GetCustomIsReachable):
1085         (GenerateOpaqueRootForGC):
1086         (GenerateHeader):
1087         (GetInternalFields):
1088         (GenerateHeaderCustomInternalFieldIndices):
1089         (GenerateHeaderNamedAndIndexedPropertyAccessors):
1090         (GenerateHeaderCustomCall):
1091         (IsConstructable):
1092         (GenerateConstructorGetter):
1093         (GenerateNormalAttrGetter):
1094         (GenerateReplaceableAttrSetter):
1095         (GenerateNormalAttrSetter):
1096         (GenerateOverloadedFunctionCallback):
1097         (GenerateFunctionCallback):
1098         (GenerateArgumentsCountCheck):
1099         (GenerateOverloadedConstructorCallback):
1100         (GenerateSingleConstructorCallback):
1101         (GenerateConstructorCallback):
1102         (GenerateEventConstructorCallback):
1103         (GenerateTypedArrayConstructorCallback):
1104         (GenerateNamedConstructorCallback):
1105         (GenerateBatchedAttributeData):
1106         (IsStandardFunction):
1107         (GenerateNonStandardFunction):
1108         (GenerateImplementationIndexer):
1109         (GenerateImplementationNamedPropertyGetter):
1110         (GenerateImplementationCustomCall):
1111         (GenerateImplementationMasqueradesAsUndefined):
1112         (GenerateImplementation):
1113         (GenerateHeaderContentHeader):
1114         (GenerateImplementationContentHeader):
1115         (GenerateCallbackHeader):
1116         (GenerateCallbackImplementation):
1117         (BaseInterfaceName):
1118         (GenerateToV8Converters):
1119         (GetNativeTypeForConversions):
1120         (GetTypeNameOfExternalTypedArray):
1121         (WriteData):
1122
1123 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1124
1125         Move in animation should be disabled until the calendar picker is loaded.
1126         https://bugs.webkit.org/show_bug.cgi?id=102661
1127
1128         Reviewed by Kent Tamura.
1129
1130         On weeks where the first day is in the previous month (e.x. 2013-W01)
1131         the move in animation happens when you open the calendar picker. This
1132         patch disables the move in animation until the calendar picker is fully
1133         loaded.
1134
1135         No new tests.
1136
1137         * Resources/pagepopups/calendarPicker.js:
1138         (CalendarPicker):
1139         (CalendarPicker.prototype._handleWindowResize):
1140         (DaysTable.prototype._startMoveInAnimation):
1141
1142 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1143
1144         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1145         https://bugs.webkit.org/show_bug.cgi?id=102743
1146
1147         Reviewed by Hajime Morita.
1148
1149         Clean up while (true) loops in NodeRenderingContext reducing the
1150         amount of code and the need for ASSERT_NOT_REACHED.
1151
1152         No new tests, just simplifcation.
1153
1154         * dom/NodeRenderingContext.cpp:
1155         (WebCore::NodeRenderingContext::nextRenderer):
1156         (WebCore::NodeRenderingContext::previousRenderer):
1157
1158 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1159
1160         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1161         https://bugs.webkit.org/show_bug.cgi?id=102753
1162
1163         Reviewed by Hajime Morita.
1164
1165         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1166         no value is set.
1167
1168         Test: fast/dom/shadow/pseudo-attribute.html
1169
1170         * dom/Element.idl:
1171
1172 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1173
1174         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1175         https://bugs.webkit.org/show_bug.cgi?id=102751
1176
1177         Reviewed by Adam Barth.
1178
1179         $dataNode is misnamed. It should be $interface.
1180
1181         No tests. No change in behavior.
1182
1183         * bindings/scripts/CodeGeneratorGObject.pm:
1184         (GetParentClassName):
1185         (GetParentGObjType):
1186         (GenerateProperties):
1187         (GenerateFunctions):
1188         (GenerateCFile):
1189         (GenerateEventTargetIface):
1190         (Generate):
1191         (WriteData):
1192         (GenerateInterface):
1193
1194 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1195
1196         In CodeGenerator.pm we should rename $dataNode to $interface
1197         https://bugs.webkit.org/show_bug.cgi?id=102754
1198
1199         Reviewed by Adam Barth.
1200
1201         $dataNode is misnamed. It should be $interface.
1202
1203         No tests. No change in behavior.
1204
1205         * bindings/scripts/CodeGenerator.pm:
1206         (ForAllParents):
1207         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1208         (FindSuperMethod):
1209         (IsConstructorTemplate):
1210         (LinkOverloadedFunctions):
1211         (GenerateCompileTimeCheckForEnumsIfNeeded):
1212         (GetVisibleInterfaceName):
1213         (IsSubType):
1214
1215 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1216
1217         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1218         https://bugs.webkit.org/show_bug.cgi?id=102752
1219
1220         Reviewed by Adam Barth.
1221
1222         $dataNode is misnamed. It should be $interface.
1223
1224         No tests. No change in behavior.
1225
1226         * bindings/scripts/CodeGeneratorCPP.pm:
1227         (GenerateInterface):
1228         (GetParentImplClassName):
1229         (GetParent):
1230         (GenerateHeader):
1231         (GenerateImplementation):
1232
1233 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1234
1235         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1236         https://bugs.webkit.org/show_bug.cgi?id=102748
1237
1238         Reviewed by Adam Barth.
1239
1240         $dataNode is misnamed. It should be $interface.
1241
1242         No tests. No change in behavior.
1243
1244         * bindings/scripts/CodeGeneratorJS.pm:
1245         (GenerateInterface):
1246         (GetParentClassName):
1247         (GetGenerateIsReachable):
1248         (GetCustomIsReachable):
1249         (GenerateGetOwnPropertySlotBody):
1250         (GenerateGetOwnPropertyDescriptorBody):
1251         (GenerateHeaderContentHeader):
1252         (GenerateImplementationContentHeader):
1253         (ShouldGenerateToJSDeclaration):
1254         (ShouldGenerateToJSImplementation):
1255         (GenerateHeader):
1256         (GenerateAttributesHashTable):
1257         (GenerateOverloadedFunction):
1258         (GenerateImplementation):
1259         (GenerateArgumentsCountCheck):
1260         (GenerateParametersCheck):
1261         (GenerateCallbackHeader):
1262         (GenerateCallbackImplementation):
1263         (WriteData):
1264         (GenerateConstructorDeclaration):
1265         (GenerateConstructorDefinition):
1266         (IsConstructable):
1267
1268 2012-11-19  Adam Barth  <abarth@webkit.org>
1269
1270         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1271         https://bugs.webkit.org/show_bug.cgi?id=102158
1272
1273         Reviewed by Eric Seidel.
1274
1275         This patch is an incremental step towards fully merging the Node code
1276         path with the general code path. After this patch, at least Nodes flow
1277         through the same class.
1278
1279         * Modules/indexeddb/IDBTransactionCoordinator.h:
1280         * bindings/scripts/CodeGeneratorV8.pm:
1281         (GenerateHeader):
1282         (GenerateToV8Converters):
1283         * bindings/v8/DOMDataStore.h:
1284         (WebCore::DOMDataStore::getNode):
1285         (DOMDataStore):
1286         (WebCore::DOMDataStore::getWrapperFromObject):
1287         * bindings/v8/DOMWrapperWorld.cpp:
1288         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1289         (WebCore):
1290         * bindings/v8/DOMWrapperWorld.h:
1291         (WebCore):
1292         (DOMWrapperWorld):
1293         * bindings/v8/V8DOMWrapper.h:
1294         (V8DOMWrapper):
1295
1296 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1297
1298         In the IDL parser, we should rename $dataNode to $interface
1299         https://bugs.webkit.org/show_bug.cgi?id=102746
1300
1301         Reviewed by Adam Barth.
1302
1303         $dataNode is misnamed. It should be $interface.
1304
1305         No tests. No change in behavior.
1306
1307         * bindings/scripts/IDLParser.pm:
1308         (parseInterface):
1309         (parseException):
1310         (parseAttributeOrOperationRest):
1311         (parseOperationOrIterator):
1312         (parseSpecialOperation):
1313         (parseInterfaceOld):
1314         (parseExceptionOld):
1315         (parseAttributeOrOperationOrIteratorOld):
1316         (parseAttributeOrOperationRestOld):
1317         (applyMemberList):
1318         (applyExtendedAttributeList):
1319         * bindings/scripts/generate-bindings.pl:
1320         * bindings/scripts/preprocess-idls.pl:
1321         (checkIDLAttributes):
1322
1323 2012-11-19  Adam Klein  <adamk@chromium.org>
1324
1325         MutationObserver wrapper should not be collected while still observing
1326         https://bugs.webkit.org/show_bug.cgi?id=102328
1327
1328         Reviewed by Adam Barth.
1329
1330         Use the new opaqueRootForGC helper in V8GCController to put each
1331         MutationObserver wrapper in the same object group as the nodes it's
1332         observing.
1333
1334         Only includes V8 impl for now, JSC impl coming soon.
1335
1336         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1337                fast/mutation/observer-wrapper-dropoff.html
1338
1339         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1340         with a FIXME to move this out once we update the opaque roots API.
1341         * dom/MutationObserver.cpp:
1342         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1343         to the GC controller.
1344         (WebCore):
1345         * dom/MutationObserver.h:
1346         * dom/MutationObserverRegistration.cpp:
1347         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1348         (WebCore):
1349         * dom/MutationObserverRegistration.h:
1350         (MutationObserverRegistration):
1351
1352 2012-11-19  Tony Chang  <tony@chromium.org>
1353
1354         Move more non-settings out of InternalSettings
1355         https://bugs.webkit.org/show_bug.cgi?id=102711
1356
1357         Reviewed by Adam Barth.
1358
1359         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1360         from internal.settings since they are already exposed by window.internals (in
1361         fact, no one calls the internal.settings version).
1362
1363         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1364         a global (static) setting and not tied to the lifetime of the Settings object.
1365
1366         No new tests, there should be no behavior change since this is a refactor.
1367
1368         * testing/InternalSettings.cpp:
1369         (WebCore::InternalSettings::reset): Remove custom reset code.
1370         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1371         * testing/InternalSettings.h:
1372         * testing/InternalSettings.idl: Remove unnecessary methods.
1373         * testing/Internals.cpp:
1374         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1375         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1376         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1377         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1378         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1379
1380 2012-11-19  David Grogan  <dgrogan@chromium.org>
1381
1382         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1383         https://bugs.webkit.org/show_bug.cgi?id=101810
1384
1385         Reviewed by Tony Chang.
1386
1387         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1388
1389         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1390         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1391         The condition tested by this assert is a valid state.
1392
1393 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1394
1395         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1396         https://bugs.webkit.org/show_bug.cgi?id=102637
1397
1398         Reviewed by Timothy Hatcher.
1399
1400         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1401
1402         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1403         worker inspector window.
1404
1405         * bindings/js/ScriptDebugServer.cpp:
1406         (WebCore::ScriptDebugServer::createCallFrame):
1407         (WebCore::ScriptDebugServer::callEvent):
1408         (WebCore::ScriptDebugServer::willExecuteProgram):
1409         * bindings/js/ScriptDebugServer.h:
1410         (ScriptDebugServer):
1411         * bindings/js/WorkerScriptDebugServer.cpp:
1412         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1413         (WebCore):
1414         * bindings/js/WorkerScriptDebugServer.h:
1415         (WorkerScriptDebugServer):
1416
1417 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1418
1419         For single element arrays use the pointer into the CFDataRef instead of copying data
1420         https://bugs.webkit.org/show_bug.cgi?id=102306
1421
1422         Reviewed by Brent Fulgham.
1423
1424         Address review comments for slightly nicer code.
1425
1426         * platform/SharedBuffer.cpp:
1427         (WebCore::SharedBuffer::data):
1428         * platform/cf/SharedBufferCF.cpp:
1429         (WebCore::SharedBuffer::singleDataArrayBuffer):
1430
1431 2012-11-19  Chris Rogers  <crogers@google.com>
1432
1433         Remove empirical bass-boost for HRTF spatialization
1434         https://bugs.webkit.org/show_bug.cgi?id=102745
1435
1436         Reviewed by Kenneth Russell.
1437
1438         Some empirically-based post-processing is being removed so that we'll
1439         now process with the exact HRTF impulse response measurements.
1440         Listening tests have determined that this post-processing is not necessary.
1441
1442         * platform/audio/HRTFElevation.cpp:
1443         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1444         * platform/audio/HRTFKernel.cpp:
1445         (WebCore::HRTFKernel::HRTFKernel):
1446         * platform/audio/HRTFKernel.h:
1447         (WebCore::HRTFKernel::create):
1448         (HRTFKernel):
1449
1450 2012-11-19  Adam Barth  <abarth@webkit.org>
1451
1452         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1453         https://bugs.webkit.org/show_bug.cgi?id=102755
1454
1455         Reviewed by Sam Weinig.
1456
1457         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1458         how this compiles.
1459
1460         * Modules/indexeddb/IDBBackingStore.h:
1461         (RecordIdentifier):
1462
1463 2012-11-19  Chris Rogers  <crogers@google.com>
1464
1465         Implement .detune attribute for BiquadFilterNode
1466         https://bugs.webkit.org/show_bug.cgi?id=102737
1467
1468         Reviewed by Kenneth Russell.
1469
1470         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1471
1472         Tests changed: webaudio/biquad-lowpass.html
1473
1474         * Modules/webaudio/BiquadDSPKernel.cpp:
1475         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1476         * Modules/webaudio/BiquadFilterNode.h:
1477         (WebCore::BiquadFilterNode::detune):
1478         * Modules/webaudio/BiquadFilterNode.idl:
1479         * Modules/webaudio/BiquadProcessor.cpp:
1480         (WebCore::BiquadProcessor::BiquadProcessor):
1481         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1482         * Modules/webaudio/BiquadProcessor.h:
1483         (WebCore::BiquadProcessor::parameter4):
1484         (BiquadProcessor):
1485
1486 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1487
1488         [WIN] Add WebCore::getRegistryValue()
1489         https://bugs.webkit.org/show_bug.cgi?id=97828
1490
1491         Reviewed by Brent Fulgham.
1492
1493         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1494         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1495
1496         * platform/win/MIMETypeRegistryWin.cpp:
1497         (WebCore::mimeTypeForExtension):
1498         (WebCore):
1499         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1500         * platform/win/WindowsExtras.h:
1501         (WebCore::getRegistryValue):
1502         (WebCore):
1503         * plugins/win/PluginDatabaseWin.cpp:
1504         (WebCore::addPluginPathsFromRegistry):
1505         (WebCore::addWindowsMediaPlayerPluginDirectory):
1506         (WebCore::addQuickTimePluginDirectory):
1507         (WebCore::addAdobeAcrobatPluginDirectory):
1508         (WebCore::addJavaPluginDirectory):
1509
1510 2012-11-19  Alpha Lam  <hclam@chromium.org>
1511
1512         Not reviewed. Build fix for Chromium.
1513
1514         Added SkTypes.h includes for Windows.
1515
1516         * platform/graphics/chromium/ImageDecodingStore.h:
1517         * platform/graphics/chromium/ImageFrameGenerator.h:
1518         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1519
1520 2012-11-19  Adam Barth  <abarth@webkit.org>
1521
1522         [V8] Simplify V8DOMWindowShell::getEntered
1523         https://bugs.webkit.org/show_bug.cgi?id=102156
1524
1525         Reviewed by Eric Seidel.
1526
1527         This patch is an incremental step towards merging
1528         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1529         up DOM wrappers. In order to merge with the general case, we need to
1530         get down to calling v8::Context::GetCurrent once, which means we need
1531         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1532
1533         As a side-benefit to this change, we can remove some redundant checks
1534         for isolatedWorldsExist and v8::Context::InContext from callers of
1535         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1536
1537         * bindings/v8/DOMDataStore.cpp:
1538         (WebCore::DOMDataStore::current):
1539         * bindings/v8/ScriptController.cpp:
1540         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1541         (WebCore::ScriptController::currentWorldContext):
1542         * bindings/v8/V8DOMWindowShell.h:
1543         (WebCore::V8DOMWindowShell::isolated):
1544         (WebCore::V8DOMWindowShell::perContextData):
1545         (WebCore::V8DOMWindowShell::world):
1546         (V8DOMWindowShell):
1547         * bindings/v8/V8DOMWrapper.h:
1548         (WebCore::V8DOMWrapper::getCachedWrapper):
1549         * bindings/v8/WorldContextHandle.cpp:
1550         (WebCore::WorldContextHandle::WorldContextHandle):
1551         * bindings/v8/custom/V8DocumentCustom.cpp:
1552         (WebCore::V8Document::dispatchWrapCustom):
1553         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1554         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1555         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1556         (WebCore::V8SVGDocument::dispatchWrapCustom):
1557         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1558         (WebCore::V8XMLHttpRequest::constructorCallback):
1559
1560 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1561
1562         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1563         https://bugs.webkit.org/show_bug.cgi?id=102671
1564
1565         Reviewed by Adam Barth.
1566
1567         Most part of code generators use 'interface'. The spec uses 'interface'.
1568         Thus, the IDL parser should use 'interface' instead of 'class'.
1569
1570         No tests. No change in behavior.
1571
1572         * bindings/scripts/CodeGenerator.pm:
1573         (ProcessDocument):
1574         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1575         (ParseInterface):
1576         * bindings/scripts/CodeGeneratorCPP.pm:
1577         (GenerateImplementation):
1578         * bindings/scripts/CodeGeneratorJS.pm:
1579         (GenerateHeader):
1580         * bindings/scripts/CodeGeneratorObjC.pm:
1581         (GenerateImplementation):
1582         * bindings/scripts/CodeGeneratorV8.pm:
1583         (GenerateHeader):
1584         (GenerateFunctionCallback):
1585         * bindings/scripts/IDLParser.pm:
1586         (Parse):
1587         (parseModule):
1588         * bindings/scripts/generate-bindings.pl:
1589
1590 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1591
1592         HTMLMediaElement::configureTextTracks should configure all text tracks
1593         https://bugs.webkit.org/show_bug.cgi?id=102561
1594
1595         Reviewed by Philippe Normand.
1596
1597         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1598
1599         * html/HTMLMediaElement.cpp:
1600         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1601         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1602         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1603         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1604         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1605         * html/HTMLMediaElement.h:
1606
1607         * html/HTMLTrackElement.cpp:
1608         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1609         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1610         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1611             "default" argument.
1612         * html/HTMLTrackElement.h:
1613
1614         * html/track/LoadableTextTrack.cpp:
1615         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1616         * html/track/LoadableTextTrack.h: 
1617         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1618             can be flagged as default.
1619         (WebCore::TextTrack::setIsDefault): Ditto.
1620
1621         * html/track/TextTrack.cpp:
1622         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1623         * html/track/TextTrack.h:
1624         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1625             need know what type of track it is calling.
1626         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1627         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1628             can be "default".
1629         (WebCore::TextTrack::setIsDefault): Ditto.
1630
1631 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1632
1633         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1634         https://bugs.webkit.org/show_bug.cgi?id=102664
1635
1636         Reviewed by Noam Rosenthal.
1637
1638         As refactoring Coordinated Graphics in WebKit2, code related to
1639         TextureMapper is changed.
1640
1641         No new tests. Refactoring only.
1642
1643         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1644         (GraphicsContext3DPrivate):
1645         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1646             We need to know the size of a texture mapper platform layer.
1647         (WebCore):
1648         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1649           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1650           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1651           GraphicsSurfaceToken.
1652         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1653         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1654         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1655         * platform/graphics/texmap/TextureMapperBackingStore.h:
1656         (TextureMapperSurfaceBackingStore):
1657         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1658         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1659
1660 2012-11-19  Alpha Lam  <hclam@chromium.org>
1661
1662         [chromium] Lazy image decoding without cache
1663         https://bugs.webkit.org/show_bug.cgi?id=102021
1664
1665         Reviewed by Stephen White.
1666
1667         Goal of this change is to make image decoding in ImageFrameGenerator
1668         completely lazy without caching. Image decoding logic is then removed
1669         from ImageDecodingStore.
1670
1671         These methods are removed.
1672         - ImageDecodingStore::lockPixels
1673         - ImageDecodingStore::unlockPixels
1674
1675         Instead image decoding and scaling is done in
1676         ImageFrameGenerator::decodeAndScale().
1677
1678         Unit tests are updated:
1679         DeferredImageDecoderTest::drawIntoSkPicture
1680         DeferredImageDecoderTest::drawScaledIntoSkPicture
1681
1682         Also covered by layout tests:
1683         platform/chromium/virtual/deferred
1684
1685         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1686         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1687         * platform/graphics/chromium/ImageDecodingStore.h:
1688         (ImageDecodingStore):
1689         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1690         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1691         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1692         (WebCore::ImageFrameGenerator::setData):
1693         (WebCore::ImageFrameGenerator::decodeAndScale):
1694         * platform/graphics/chromium/ImageFrameGenerator.h:
1695         (WebCore::ImageFrameGenerator::create):
1696         (ImageFrameGenerator):
1697         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1698         (WebCore::LazyDecodingPixelRef::onLockPixels):
1699         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1700         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1701         (LazyDecodingPixelRef):
1702
1703 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1704
1705         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1706         https://bugs.webkit.org/show_bug.cgi?id=100150
1707
1708         Reviewed by Ryosuke Niwa.
1709
1710         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1711         they can go away inside fixRangeAndApplyInlineStyle call.
1712
1713         Test: editing/style/apply-style-crash.html
1714
1715         * editing/ApplyStyleCommand.cpp:
1716         (WebCore::ApplyStyleCommand::applyInlineStyle):
1717
1718 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1719
1720         Unreviewed, rolling out r135172.
1721         http://trac.webkit.org/changeset/135172
1722         https://bugs.webkit.org/show_bug.cgi?id=102710
1723
1724         Broke some WebKit2 api tests :( (Requested by japhet on
1725         #webkit).
1726
1727         * loader/DocumentLoader.cpp:
1728         (WebCore::DocumentLoader::DocumentLoader):
1729         (WebCore::DocumentLoader::~DocumentLoader):
1730         (WebCore::DocumentLoader::finishedLoading):
1731         (WebCore::DocumentLoader::clearMainResourceLoader):
1732         (WebCore::DocumentLoader::isLoadingInAPISense):
1733         (WebCore::DocumentLoader::documentURL):
1734         (WebCore::DocumentLoader::isLoadingMainResource):
1735         (WebCore::DocumentLoader::startLoadingMainResource):
1736         * loader/DocumentLoader.h:
1737         (DocumentLoader):
1738         * loader/FrameLoader.cpp:
1739         (WebCore::FrameLoader::FrameLoader):
1740         (WebCore::FrameLoader::init):
1741         * loader/FrameLoaderStateMachine.cpp:
1742         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1743         * loader/FrameLoaderStateMachine.h:
1744         * loader/MainResourceLoader.cpp:
1745         (WebCore::shouldLoadAsEmptyDocument):
1746         (WebCore):
1747         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1748         (WebCore::MainResourceLoader::didReceiveResponse):
1749         (WebCore::MainResourceLoader::didFinishLoading):
1750         (WebCore::MainResourceLoader::handleEmptyLoad):
1751         (WebCore::MainResourceLoader::loadNow):
1752         (WebCore::MainResourceLoader::load):
1753         * loader/MainResourceLoader.h:
1754         (MainResourceLoader):
1755
1756 2012-11-19  Tony Chang  <tony@chromium.org>
1757
1758         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1759         https://bugs.webkit.org/show_bug.cgi?id=102548
1760
1761         Reviewed by Adam Barth.
1762
1763         This allows us to use Settings.in to generate the code for this.
1764
1765         I didn't rename any of the WebKit API methods with similar names because that would
1766         probably break consumers.  It turns out that the getter is only called from
1767         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1768
1769         No new tests, just a refactor.
1770
1771         * WebCore.exp.in: Remove symbols that are now inlined.
1772         * WebCore.order: Remove symbols that are now inlined.
1773         * dom/Document.cpp:
1774         (WebCore::Document::initSecurityContext): Rename.
1775         * page/Settings.cpp:
1776         (WebCore::Settings::Settings): Remove code since it will be generated.
1777         * page/Settings.h:
1778         (Settings): Remove code since it will be generated.
1779         * page/Settings.in: Add entries to be generated.
1780         * page/SpatialNavigation.cpp:
1781         (WebCore::isSpatialNavigationEnabled): Fix caller.
1782
1783 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1784
1785         [EFL][TexMap] Complie error when considering warnings as errors
1786         https://bugs.webkit.org/show_bug.cgi?id=102705
1787
1788         Reviewed by Kenneth Rohde Christiansen.
1789
1790         Change GaussianKernelHalfWidth to unsigned.
1791
1792         No new tests.
1793
1794         * platform/graphics/texmap/TextureMapperGL.cpp:
1795         (WebCore):
1796
1797 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1798
1799         Unreviewed, rolling out r134830.
1800         http://trac.webkit.org/changeset/134830
1801         https://bugs.webkit.org/show_bug.cgi?id=102701
1802
1803         ActiveDOMObject is not applicable to MutationObservers due to
1804         being tied to a Document (Requested by aklein on #webkit).
1805
1806         * bindings/js/JSMutationObserverCustom.cpp:
1807         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1808         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1809         (WebCore::V8MutationObserver::constructorCallback):
1810         * dom/MutationObserver.cpp:
1811         (WebCore::MutationObserver::create):
1812         (WebCore::MutationObserver::MutationObserver):
1813         (WebCore::MutationObserver::observationStarted):
1814         (WebCore::MutationObserver::observationEnded):
1815         * dom/MutationObserver.h:
1816         (WebCore):
1817         * dom/MutationObserver.idl:
1818
1819 2012-11-19  Brady Eidson  <beidson@apple.com>
1820
1821         NetworkProcess Authentication.
1822         https://bugs.webkit.org/show_bug.cgi?id=102592
1823
1824         Reviewed by Alexey Proskuryakov.
1825
1826         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1827
1828         Also export some more stuff.
1829
1830         No new tests (Platform support, no effect in tested configs).
1831
1832         * WebCore.exp.in:
1833
1834         * loader/ResourceLoader.cpp:
1835         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1836           there is a handle.
1837
1838 2012-11-19  Alec Flett  <alecflett@chromium.org>
1839
1840         IndexedDB: simplify RecordIdentifier
1841         https://bugs.webkit.org/show_bug.cgi?id=102018
1842
1843         Reviewed by Tony Chang.
1844
1845         Make IDBBackingStore's RecordIdentifier be a simple
1846         class, existing only as an inline or stack-based instance.
1847         This makes much of the copy semantics more explicit, and
1848         removes refcounting from an object that only ever had a refcount
1849         of 1 or 2.
1850
1851         No new tests, just a refactor.
1852
1853         * Modules/indexeddb/IDBBackingStore.cpp:
1854         (WebCore::IDBBackingStore::putRecord):
1855         (WebCore::IDBBackingStore::deleteRecord):
1856         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1857         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1858         (WebCore::IDBBackingStore::putIndexDataForRecord):
1859         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1860         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1861         (ObjectStoreCursorImpl):
1862         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1863         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1864         (WebCore::IndexCursorImpl::recordIdentifier):
1865         * Modules/indexeddb/IDBBackingStore.h:
1866         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1867         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1868         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1869         (RecordIdentifier):
1870         (IDBBackingStore):
1871         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1872         (WebCore::IDBBackingStore::Cursor::Cursor):
1873         (Cursor):
1874         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1875         (WebCore):
1876         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1877         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1878         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1879
1880 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1881
1882         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1883         https://bugs.webkit.org/show_bug.cgi?id=100927
1884
1885         Reviewed by Alexey Proskuryakov.
1886
1887         This patch adds ParsedContentType class that represents contents of parsed
1888         content type string. isValidContentType function could be used to check if
1889         format of the content type string is acorrding to RFC 2616 section 4.2.
1890
1891         * CMakeLists.txt:
1892         * GNUmakefile.list.am:
1893         * Target.pri:
1894         * WebCore.gypi:
1895         * WebCore.xcodeproj/project.pbxproj:
1896         * platform/network/MIMEHeader.cpp:
1897         (WebCore::MIMEHeader::parseHeader):
1898         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1899         (WebCore):
1900         (EmptyParsedContentType):
1901         (WebCore::EmptyParsedContentType::setContentType):
1902         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1903         (WebCore::skipSpaces):
1904         (WebCore::isTokenCharacter):
1905         (WebCore::parseToken):
1906         (WebCore::parseQuotedString):
1907         (WebCore::substringForRange):
1908         (WebCore::parseContentType):
1909         (WebCore::isValidContentType):
1910         (WebCore::ParsedContentType::ParsedContentType):
1911         (WebCore::ParsedContentType::charset):
1912         (WebCore::ParsedContentType::parameterValueForName):
1913         (WebCore::ParsedContentType::parameterCount):
1914         (WebCore::ParsedContentType::setContentType):
1915         (WebCore::ParsedContentType::setContentTypeParameter):
1916         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1917         (WebCore):
1918         (ParsedContentType):
1919         (WebCore::ParsedContentType::mimeType):
1920
1921 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1922
1923         Update DOMException name: InvalidNodeTypeError
1924         https://bugs.webkit.org/show_bug.cgi?id=102519
1925
1926         Reviewed by Kentaro Hara.
1927
1928         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1929
1930         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1931
1932         * dom/DOMCoreException.cpp:
1933
1934 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1935
1936         Changing id, className, or attribute should invalidate distribution
1937         https://bugs.webkit.org/show_bug.cgi?id=100738
1938
1939         Reviewed by Dimitri Glazkov.
1940
1941         When id, className, or attribute is changed, we might have to invalidate distribution.
1942         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1943         to invalidate distribution only if necessary.
1944
1945         For the code that className is changed, we can share a lot of code between invalidating distribution and
1946         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1947
1948         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1949         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1950         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1951         for this purpose.
1952
1953         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1954         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1955         will be the most affected by this patch. However, it's only 2% performance regression.
1956
1957         DOM/ModifyAttribute.html
1958         Before this patch:
1959                 median  stdev    min    max    [ms]
1960           1st    494.0   3.36  490.0  502.0
1961           2nd    503.5   3.44  497.0  512.0
1962           3rd    494.0   3.48  488.0  499.0
1963
1964         After this patch:
1965                 median  stdev  min      max    [ms]
1966           1st    504.0   2.00  501.0  509.0
1967           2nd    505.5   3.08  500.0  513.0
1968           3rd    507.0   2.32  502.0  510.0
1969
1970         Tests: fast/dom/shadow/distribution-attribute-modified.html
1971                fast/dom/shadow/distribution-className-modified.html
1972                fast/dom/shadow/distribution-id-modified.html
1973                fast/dom/shadow/reprojection-attribute-modified.html
1974                fast/dom/shadow/reprojection-className-modified.html
1975                fast/dom/shadow/reprojection-id-modified.html
1976
1977         * dom/Element.cpp:
1978         (WebCore::Element::attributeChanged):
1979         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
1980         (HasSelectorForClassStyleFunctor):
1981         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
1982         (WebCore):
1983         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
1984         (HasSelectorForClassDistributionFunctor):
1985         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
1986         (WebCore::checkFunctorForClassChange):
1987         (WebCore::checkNeedsStyleInvalidationForClassChange):
1988         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
1989         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
1990         * dom/Element.h:
1991         (Element):
1992         * dom/Node.h:
1993         (WebCore::Node::isInsertionPoint):
1994         * html/HTMLElement.h:
1995         (HTMLElement):
1996         * html/shadow/InsertionPoint.cpp:
1997         (WebCore::InsertionPoint::InsertionPoint):
1998         * html/shadow/InsertionPoint.h:
1999         (InsertionPoint):
2000         (WebCore::isInsertionPoint):
2001         (WebCore::shadowOfParentForDistribution):
2002         (WebCore::resolveReprojection):
2003
2004 2012-11-19  Nate Chapin  <japhet@chromium.org>
2005
2006         Move empty loading to DocumentLoader, simplify FrameLoader::init()
2007         https://bugs.webkit.org/show_bug.cgi?id=101512
2008
2009         Reviewed by Adam Barth.
2010
2011         No new tests, though several outputs changed because we no longer send resource
2012             load callbacks for empty loads.
2013
2014         * loader/DocumentLoader.cpp:
2015         (WebCore::DocumentLoader::DocumentLoader):
2016         (WebCore::DocumentLoader::~DocumentLoader):
2017         (WebCore::DocumentLoader::finishedLoading):
2018         (WebCore::DocumentLoader::clearMainResourceLoader):
2019         (WebCore::DocumentLoader::isLoadingInAPISense):
2020         (WebCore::DocumentLoader::isLoadingMainResource):
2021         (WebCore::DocumentLoader::maybeLoadEmpty):
2022         (WebCore):
2023         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
2024              loads directly here.
2025         * loader/DocumentLoader.h:
2026         (DocumentLoader):
2027         * loader/FrameLoader.cpp:
2028         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
2029             were previously being reset in init(). Given that the FrameLoader is in
2030             an inconsistent state before init() is called anyway, there doesn't seem
2031             to be a disadvantage to just initializing them to their post-init() values.
2032         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
2033             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
2034         * loader/FrameLoaderStateMachine.cpp:
2035         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
2036         * loader/FrameLoaderStateMachine.h:
2037         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
2038         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
2039             load got deferred, which won't happen now. Return void and always treat
2040             as returning false.
2041         * loader/MainResourceLoader.h:
2042         (MainResourceLoader):
2043
2044 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2045
2046         Update DOMException name: TimeoutError
2047         https://bugs.webkit.org/show_bug.cgi?id=102513
2048
2049         Reviewed by Kentaro Hara.
2050
2051         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
2052
2053         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
2054
2055         * dom/DOMCoreException.cpp:
2056
2057 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2058
2059         Update DOMException name: DataCloneError
2060         https://bugs.webkit.org/show_bug.cgi?id=102521
2061
2062         Reviewed by Kentaro Hara.
2063
2064         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
2065
2066         Updated existing tests.
2067
2068         * dom/DOMCoreException.cpp:
2069
2070 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
2071
2072         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
2073         https://bugs.webkit.org/show_bug.cgi?id=98660
2074
2075         Reviewed by Simon Fraser.
2076
2077         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
2078         and paintTranslucentBorderSides() so that we don't do unnecessary work.
2079
2080         If we can avoid setting up and tearing down an unnecessary transparent layer we save
2081         30ms on some mobile platforms.
2082
2083         * rendering/RenderBoxModelObject.h:
2084         * rendering/RenderBoxModelObject.cpp:
2085         (WebCore::RenderBoxModelObject::paintBorder):
2086         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2087
2088 2012-11-19  Hans Muller  <hmuller@adobe.com>
2089
2090         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
2091         https://bugs.webkit.org/show_bug.cgi?id=100765
2092
2093         Reviewed by Dirk Schulze.
2094
2095         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
2096         isn't null, since the caller is expected to ensure as much.  No new tests were
2097         needed since this is a near-trivial cleanup.
2098
2099         * rendering/ExclusionShape.cpp:
2100         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2101
2102 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2103
2104         Use device scale factor instead of physical screen DPI for screen DPI
2105         https://bugs.webkit.org/show_bug.cgi?id=101769
2106
2107         Reviewed by Adam Barth.
2108
2109         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2110         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2111         functions currently return the physical screen DPI, which is wrong. To fix
2112         this, we remove both of these functions entirely and make media queries use
2113         the device scale factor multiplied by 96 on all ports.
2114
2115         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2116
2117         * page/Screen.cpp:
2118         (WebCore::Screen::horizontalDPI):
2119         (WebCore::Screen::verticalDPI):
2120         * platform/PlatformScreen.h:
2121         (WebCore):
2122         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2123         * platform/chromium/PlatformScreenChromium.cpp:
2124         * platform/efl/PlatformScreenEfl.cpp:
2125         * platform/gtk/PlatformScreenGtk.cpp:
2126         * platform/mac/PlatformScreenMac.mm:
2127         * platform/qt/PlatformScreenQt.cpp:
2128         * platform/win/PlatformScreenWin.cpp:
2129         * platform/wx/ScreenWx.cpp:
2130
2131 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2132
2133         Computed grid items' positions shouldn't be using Length
2134         https://bugs.webkit.org/show_bug.cgi?id=102537
2135
2136         Reviewed by Tony Chang.
2137
2138         This change refactors how we store the grid items' position to use
2139         a new type GridPosition. Length was a temporary type as it supported
2140         'auto' | <integer> but it was starting to get more and more confusing
2141         as we were implementing the layout routines.
2142
2143         No change in behavior.
2144
2145         * GNUmakefile.list.am:
2146         * WebCore.gypi:
2147         * WebCore.vcproj/WebCore.vcproj:
2148         * WebCore.xcodeproj/project.pbxproj:
2149         Added the new file to the build systems.
2150
2151         * rendering/style/RenderStyle.h:
2152         Updated after the type change. Also made some getters
2153         return a const reference instead of forcing a copy.
2154
2155         * rendering/style/StyleGridItemData.h:
2156         (StyleGridItemData):
2157         Ditto, also removed a comment about adding a new type.
2158
2159         * css/CSSComputedStyleDeclaration.cpp:
2160         (WebCore::valueForGridPosition):
2161         * css/StyleResolver.cpp:
2162         (WebCore::createGridPosition):
2163         (WebCore::StyleResolver::applyProperty):
2164         * rendering/RenderGrid.cpp:
2165         (WebCore::RenderGrid::resolveGridPosition):
2166         Updated these sites after switching to GridPosition.
2167
2168         * rendering/RenderGrid.h:
2169         Changed resolveGridPosition signature: it now takes a GridPosition.
2170
2171         * rendering/style/GridPosition.h: Added.
2172         (WebCore::GridPosition::GridPosition):
2173         Default constructor, creates an 'auto' position.
2174
2175         (WebCore::GridPosition::isPositive):
2176         (WebCore::GridPosition::type):
2177         (WebCore::GridPosition::isAuto):
2178         (WebCore::GridPosition::setIntegerPosition):
2179         (WebCore::GridPosition::integerPosition):
2180         Helper functions.
2181
2182         (WebCore::GridPosition::operator==):
2183         Required comparison operator for StyleGridItemData.
2184
2185 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2186
2187         Apply the resolved viewport rules
2188         https://bugs.webkit.org/show_bug.cgi?id=95964
2189
2190         Reviewed by Kenneth Rohde Christiansen.
2191
2192         This patch implements the CSS Device Adaptation specification. The
2193         WebKit implementation relies on the already implemented Viewport Meta
2194         infrastructure to notify the browser of viewport changes.
2195
2196         The implementation was tests with success on the Qt and EFL ports, but
2197         basically every port supporting Viewport Meta should be fine.
2198
2199         The usage of @-webkit-viewport inside media queries (more tests coming
2200         to map all the corner cases) is currently limited when the media query
2201         depends on the viewport dimensions itself. Defining the width and height
2202         based on screen size will fail on ports reporting the screen
2203         size as the size of the browser window instead of the device screen.
2204
2205         Tests: css3/device-adapt/opera/cascading-001.xhtml
2206                css3/device-adapt/opera/cascading-002.xhtml
2207                css3/device-adapt/opera/cascading-003.xhtml
2208                css3/device-adapt/opera/cascading-004.xhtml
2209                css3/device-adapt/opera/constrain-001.xhtml
2210                css3/device-adapt/opera/constrain-002.xhtml
2211                css3/device-adapt/opera/constrain-003.xhtml
2212                css3/device-adapt/opera/constrain-004.xhtml
2213                css3/device-adapt/opera/constrain-005.xhtml
2214                css3/device-adapt/opera/constrain-006.xhtml
2215                css3/device-adapt/opera/constrain-007.xhtml
2216                css3/device-adapt/opera/constrain-008.xhtml
2217                css3/device-adapt/opera/constrain-009.xhtml
2218                css3/device-adapt/opera/constrain-010.xhtml
2219                css3/device-adapt/opera/constrain-011.xhtml
2220                css3/device-adapt/opera/constrain-012.xhtml
2221                css3/device-adapt/opera/constrain-013.xhtml
2222                css3/device-adapt/opera/constrain-014.xhtml
2223                css3/device-adapt/opera/constrain-015.xhtml
2224                css3/device-adapt/opera/constrain-016.xhtml
2225                css3/device-adapt/opera/constrain-017.xhtml
2226                css3/device-adapt/opera/constrain-020.xhtml
2227                css3/device-adapt/opera/syntax-001.xhtml
2228                css3/device-adapt/opera/syntax-002.xhtml
2229                css3/device-adapt/opera/syntax-003.xhtml
2230
2231         * CMakeLists.txt:
2232         * GNUmakefile.list.am:
2233         * Target.pri:
2234         * WebCore.gypi:
2235         * WebCore.vcproj/WebCore.vcproj:
2236         * WebCore.xcodeproj/project.pbxproj:
2237         * css/CSSAllInOne.cpp:
2238         * css/RuleSet.cpp:
2239         (WebCore::RuleSet::addRulesFromSheet):
2240         * css/StyleResolver.cpp:
2241         (WebCore::StyleResolver::StyleResolver):
2242         (WebCore::StyleResolver::appendAuthorStyleSheets):
2243         (WebCore::StyleResolver::~StyleResolver):
2244         * css/StyleResolver.h:
2245         (StyleResolver):
2246         (WebCore::StyleResolver::viewportStyleResolver):
2247         * css/ViewportStyleResolver.cpp: Added.
2248         (WebCore):
2249         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2250         (WebCore::ViewportStyleResolver::addViewportRule):
2251         (WebCore::ViewportStyleResolver::clearDocument):
2252         (WebCore::ViewportStyleResolver::resolve):
2253         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2254         * css/ViewportStyleResolver.h: Added.
2255         (WebCore):
2256         (ViewportStyleResolver):
2257         (WebCore::ViewportStyleResolver::create):
2258         * dom/Document.h:
2259         (WebCore::Document::setViewportArguments):
2260         * dom/ViewportArguments.cpp:
2261         (WebCore::compareIgnoringAuto):
2262         (WebCore):
2263         (WebCore::ViewportArguments::resolve):
2264         * dom/ViewportArguments.h:
2265         (ViewportAttributes):
2266         (WebCore::ViewportArguments::ViewportArguments):
2267         (ViewportArguments):
2268         (WebCore::ViewportArguments::operator==):
2269
2270 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2271
2272         Update DOMException name: SecurityError
2273         https://bugs.webkit.org/show_bug.cgi?id=102437
2274
2275         Reviewed by Kentaro Hara.
2276
2277         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2278
2279         Updated existing tests.
2280
2281         * dom/DOMCoreException.cpp:
2282
2283 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2284
2285         Update DOMException name: URLMismatchError
2286         https://bugs.webkit.org/show_bug.cgi?id=102511
2287
2288         Reviewed by Kentaro Hara.
2289
2290         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2291
2292         Updated existing tests.
2293
2294         * dom/DOMCoreException.cpp:
2295         (WebCore):
2296
2297 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2298
2299         Add PROXIMITY_EVENTS feature
2300         https://bugs.webkit.org/show_bug.cgi?id=102658
2301
2302         Reviewed by Kentaro Hara.
2303
2304         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2305
2306         No new tests. Just add a new feature.
2307
2308         * Configurations/FeatureDefines.xcconfig:
2309         * GNUmakefile.features.am:
2310
2311 2012-11-19  Alexei Filippov  <alph@chromium.org>
2312
2313         Web Inspector: Dim a component's subitems' color in NMI snapshot
2314         https://bugs.webkit.org/show_bug.cgi?id=102224
2315
2316         Reviewed by Yury Semikhatsky.
2317
2318         * inspector/front-end/NativeMemorySnapshotView.js:
2319         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2320         * inspector/front-end/nativeMemoryProfiler.css:
2321         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2322
2323 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2324
2325         Update DOMException name: NetworkError
2326         https://bugs.webkit.org/show_bug.cgi?id=102503
2327
2328         Reviewed by Kentaro Hara.
2329
2330         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2331
2332         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2333
2334         * dom/DOMCoreException.cpp:
2335
2336 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2337
2338         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2339         https://bugs.webkit.org/show_bug.cgi?id=102649
2340
2341         Reviewed by Adam Barth.
2342
2343         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2344         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2345         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2346
2347         No new tests as there is no new functionality.
2348
2349         * Modules/webaudio/AudioBufferSourceNode.cpp:
2350         (WebCore::AudioBufferSourceNode::looping):
2351         (WebCore::AudioBufferSourceNode::setLooping):
2352         * Modules/webaudio/AudioContext.cpp:
2353         (WebCore::AudioContext::AudioContext):
2354         (WebCore::AudioContext::stop):
2355         (WebCore::AudioContext::scriptExecutionContext):
2356         (WebCore::AudioContext::fireCompletionEvent):
2357         (WebCore::AudioContext::reportMemoryUsage):
2358         * Modules/webaudio/AudioContext.h:
2359         (AudioContext):
2360         * Modules/webaudio/ScriptProcessorNode.cpp:
2361         (WebCore::ScriptProcessorNode::fireProcessEvent):
2362         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2363
2364 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2365
2366         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2367         https://bugs.webkit.org/show_bug.cgi?id=102356
2368
2369         Reviewed by Adam Barth.
2370
2371         A clean-up code was moved from uninitialize to clear method.
2372         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2373         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2374         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2375         adoptRef was added in createOfflineContext method.
2376         A guard was added into deleteMarkedNodes.
2377
2378         Test: inspector-protocol/nmi-webaudio-leak-test.html
2379
2380         * Modules/webaudio/AudioContext.cpp:
2381         (WebCore::AudioContext::createOfflineContext):
2382         (WebCore::AudioContext::AudioContext):
2383         (WebCore::AudioContext::constructCommon):
2384         (WebCore::AudioContext::~AudioContext):
2385         (WebCore::AudioContext::clear):
2386         (WebCore::AudioContext::uninitialize):
2387         (WebCore::AudioContext::stopDispatch):
2388         (WebCore::AudioContext::stop):
2389         (WebCore::AudioContext::markForDeletion):
2390         (WebCore::AudioContext::scheduleNodeDeletion):
2391         (WebCore::AudioContext::deleteMarkedNodes):
2392         * Modules/webaudio/AudioContext.h:
2393         (AudioContext):
2394         * bindings/v8/custom/V8AudioContextCustom.cpp:
2395         (WebCore::V8AudioContext::constructorCallback):
2396         * inspector/InspectorMemoryAgent.cpp:
2397         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2398         * platform/PlatformMemoryInstrumentation.cpp:
2399         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2400         (WebCore):
2401         * platform/PlatformMemoryInstrumentation.h:
2402         (PlatformMemoryInstrumentation):
2403         (WebCore):
2404
2405 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2406
2407         Update DOMException name: QuotaExceededError
2408         https://bugs.webkit.org/show_bug.cgi?id=102512
2409
2410         Reviewed by Kentaro Hara.
2411
2412         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2413
2414         Updated existing tests.
2415
2416         * dom/DOMCoreException.cpp:
2417
2418 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2419
2420         Update DOMException name: AbortError
2421         https://bugs.webkit.org/show_bug.cgi?id=102508
2422
2423         Reviewed by Kentaro Hara.
2424
2425         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2426
2427         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2428
2429         * dom/DOMCoreException.cpp:
2430
2431 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2432
2433         Unreviewed, rolling out r135111.
2434         http://trac.webkit.org/changeset/135111
2435         https://bugs.webkit.org/show_bug.cgi?id=102356
2436
2437         The patch caused crashes in several layout tests
2438
2439         * Modules/webaudio/AudioContext.cpp:
2440         (WebCore::AudioContext::createOfflineContext):
2441         (WebCore::AudioContext::AudioContext):
2442         (WebCore::AudioContext::constructCommon):
2443         (WebCore::AudioContext::~AudioContext):
2444         (WebCore::AudioContext::uninitialize):
2445         (WebCore::AudioContext::uninitializeDispatch):
2446         (WebCore::AudioContext::stop):
2447         (WebCore::AudioContext::markForDeletion):
2448         (WebCore::AudioContext::scheduleNodeDeletion):
2449         (WebCore::AudioContext::deleteMarkedNodes):
2450         * Modules/webaudio/AudioContext.h:
2451         (AudioContext):
2452         * bindings/v8/custom/V8AudioContextCustom.cpp:
2453         (WebCore::V8AudioContext::constructorCallback):
2454         * inspector/InspectorMemoryAgent.cpp:
2455         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2456         * platform/PlatformMemoryInstrumentation.cpp:
2457         (WebCore):
2458         * platform/PlatformMemoryInstrumentation.h:
2459
2460 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2461
2462         Unreviewed, rolling out r135116.
2463         http://trac.webkit.org/changeset/135116
2464         https://bugs.webkit.org/show_bug.cgi?id=102649
2465
2466         Revert this patch to revert r135111, which caused crashes in
2467         several layout tests
2468
2469         * Modules/webaudio/AudioBufferSourceNode.cpp:
2470         (WebCore::AudioBufferSourceNode::looping):
2471         (WebCore::AudioBufferSourceNode::setLooping):
2472         * Modules/webaudio/AudioContext.cpp:
2473         (WebCore::AudioContext::AudioContext):
2474         (WebCore::AudioContext::stop):
2475         (WebCore::AudioContext::document):
2476         (WebCore):
2477         (WebCore::AudioContext::hasDocument):
2478         (WebCore::AudioContext::scriptExecutionContext):
2479         (WebCore::AudioContext::fireCompletionEvent):
2480         (WebCore::AudioContext::reportMemoryUsage):
2481         * Modules/webaudio/AudioContext.h:
2482         (AudioContext):
2483         * Modules/webaudio/ScriptProcessorNode.cpp:
2484         (WebCore::ScriptProcessorNode::fireProcessEvent):
2485         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2486
2487 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2488
2489         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2490         https://bugs.webkit.org/show_bug.cgi?id=102673
2491
2492         Reviewed by Vsevolod Vlasov.
2493
2494         DebuggerScriptMapping calls public method "addScript" not defined
2495         in SourceMapping interface.
2496
2497         To make things clear I've added ScriptSourceMapping interface that
2498         extends SourceMapping interface by adding "addScript" method.
2499
2500         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2501         * inspector/front-end/CompilerScriptMapping.js:
2502         Updated "@implements" to ScriptSourceMapping.
2503         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2504         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2505         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2506         Removed useless code.
2507
2508 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2509
2510         Unreviewed, untested build fix.
2511
2512         * bindings/scripts/IDLParser.pm:
2513         (parseModule):
2514
2515 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2516
2517         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2518         https://bugs.webkit.org/show_bug.cgi?id=102303
2519
2520         Reviewed by Alexis Menard.
2521
2522         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2523         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2524         This will help speed wise in JS.
2525
2526         No new functionality, no new tests.
2527
2528         * css/CSSParser.cpp:
2529         (WebCore::isValidKeywordPropertyAndValue):
2530         (WebCore::isKeywordPropertyID):
2531         (WebCore::CSSParser::parseValue):
2532
2533 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2534
2535         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2536         https://bugs.webkit.org/show_bug.cgi?id=102660
2537
2538         Reviewed by Kent Tamura.
2539
2540         The calendar picker used to animate when you press 't'.
2541
2542         No new tests.
2543
2544         * Resources/pagepopups/calendarPicker.js:
2545         (DaysTable.prototype.selectRange):
2546
2547 2012-11-19  Kent Tamura  <tkent@chromium.org>
2548
2549         input.value="" should clear date/time input elements with partial values
2550         https://bugs.webkit.org/show_bug.cgi?id=102645
2551
2552         Reviewed by Kentaro Hara.
2553
2554         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2555                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2556                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2557                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2558                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2559                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2560
2561         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2562         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2563         If the new value is an empty string and sub-fields has values, we should
2564         update the UI value to the empty state.
2565         * html/DateTimeFieldsState.h:
2566         (WebCore::DateTimeFieldsState::hasAnyValue):
2567         Added. It returns true if one or more sub-fields are not empty.
2568
2569 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2570
2571         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2572         https://bugs.webkit.org/show_bug.cgi?id=102522
2573
2574         Reviewed by Yury Semikhatsky.
2575
2576         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2577         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2578         Drive-by: add more typification for the JS compiler.
2579         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2580
2581         * inspector/InjectedScriptCanvasModuleSource.js:
2582         (.):
2583
2584 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2585
2586         Remove IDLStructure.pm
2587         https://bugs.webkit.org/show_bug.cgi?id=102642
2588
2589         Reviewed by Adam Barth.
2590
2591         Previously IDLStructure.pm was full of regular expressions to
2592         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2593         just contains several data structures for the IDL parser. We can
2594         move them to IDLParser.pm and thus remove IDLStructure.pm.
2595
2596         No tests. No change in generated code.
2597
2598         * CMakeLists.txt:
2599         * DerivedSources.make:
2600         * DerivedSources.pri:
2601         * GNUmakefile.am:
2602         * WebCore.gyp/WebCore.gyp:
2603         * WebCore.vcproj/MigrateScripts:
2604         * WebCore.vcproj/WebCore.vcproj:
2605         * WebCore.xcodeproj/project.pbxproj:
2606         * bindings/scripts/IDLParser.pm:
2607         (Parse):
2608         (parseInterface):
2609         (parseException):
2610         (parseConst):
2611         (parseAttributeRest):
2612         (parseOperationRest):
2613         (parseOptionalOrRequiredArgument):
2614         (parseExceptionField):
2615         (parseInterfaceOld):
2616         (parseExceptionOld):
2617         (parseAttributeRestOld):
2618         (applyExtendedAttributeList):
2619         * bindings/scripts/IDLStructure.pm: Removed.
2620
2621 2012-11-19  Alexei Filippov  <alph@chromium.org>
2622
2623         Web Inspector: refine time and bytes output formatting
2624         https://bugs.webkit.org/show_bug.cgi?id=102265
2625
2626         Reviewed by Yury Semikhatsky.
2627
2628         Add a space between number and unit, otherwise it's hard to read things like 88B.
2629         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2630
2631         * English.lproj/localizedStrings.js:
2632         * inspector/front-end/CookiesTable.js:
2633         (WebInspector.CookiesTable.prototype._createGridNode):
2634         * inspector/front-end/UIUtils.js:
2635         (Number.secondsToString):
2636         (Number.bytesToString):
2637
2638 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2639
2640         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2641         https://bugs.webkit.org/show_bug.cgi?id=102383
2642
2643         Reviewed by Yury Semikhatsky.
2644
2645         Fixed string presentation of event.
2646
2647         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2648
2649 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2650
2651         Remove IDLStructure.pm
2652         https://bugs.webkit.org/show_bug.cgi?id=102642
2653
2654         Reviewed by Adam Barth.
2655
2656         Previously IDLStructure.pm was full of regular expressions to
2657         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2658         just contains several data structures for the IDL parser. We can
2659         move them to IDLParser.pm and thus remove IDLStructure.pm.
2660
2661         No tests. No change in generated code.
2662
2663         * CMakeLists.txt:
2664         * DerivedSources.make:
2665         * DerivedSources.pri:
2666         * GNUmakefile.am:
2667         * WebCore.gyp/WebCore.gyp:
2668         * WebCore.vcproj/MigrateScripts:
2669         * WebCore.vcproj/WebCore.vcproj:
2670         * WebCore.xcodeproj/project.pbxproj:
2671         * bindings/scripts/IDLParser.pm:
2672         (Parse):
2673         (parseInterface):
2674         (parseException):
2675         (parseConst):
2676         (parseAttributeRest):
2677         (parseOperationRest):
2678         (parseOptionalOrRequiredArgument):
2679         (parseExceptionField):
2680         (parseInterfaceOld):
2681         (parseExceptionOld):
2682         (parseAttributeRestOld):
2683         (applyExtendedAttributeList):
2684         * bindings/scripts/IDLStructure.pm: Removed.
2685
2686 2012-11-19  Alexei Filippov  <alph@chromium.org>
2687
2688         Web Inspector: refine time and bytes output formatting
2689         https://bugs.webkit.org/show_bug.cgi?id=102265
2690
2691         Reviewed by Yury Semikhatsky.
2692
2693         Add a space between number and unit, otherwise it's hard to read things like 88B.
2694         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2695
2696         * English.lproj/localizedStrings.js:
2697         * inspector/front-end/CookiesTable.js:
2698         (WebInspector.CookiesTable.prototype._createGridNode):
2699         * inspector/front-end/UIUtils.js:
2700         (Number.secondsToString):
2701         (Number.bytesToString):
2702
2703 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2704
2705         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2706         https://bugs.webkit.org/show_bug.cgi?id=102383
2707
2708         Reviewed by Yury Semikhatsky.
2709
2710         Fixed string presentation of event.
2711
2712         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2713
2714 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2715
2716         Unreviewed, rolling out r135114.
2717         http://trac.webkit.org/changeset/135114
2718         https://bugs.webkit.org/show_bug.cgi?id=102642
2719
2720         it broke Qt build
2721
2722         * CMakeLists.txt:
2723         * DerivedSources.make:
2724         * DerivedSources.pri:
2725         * GNUmakefile.am:
2726         * WebCore.gyp/WebCore.gyp:
2727         * WebCore.vcproj/MigrateScripts:
2728         * WebCore.vcproj/WebCore.vcproj:
2729         * WebCore.xcodeproj/project.pbxproj:
2730         * bindings/scripts/IDLParser.pm:
2731         (Parse):
2732         (parseInterface):
2733         (parseException):
2734         (parseConst):
2735         (parseAttributeRest):
2736         (parseOperationRest):
2737         (parseOptionalOrRequiredArgument):
2738         (parseExceptionField):
2739         (parseInterfaceOld):
2740         (parseExceptionOld):
2741         (parseAttributeRestOld):
2742         (applyExtendedAttributeList):
2743         * bindings/scripts/IDLStructure.pm: Added.
2744
2745 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2746
2747         Unreviewed inspector closure compilation fix.
2748
2749         * inspector/front-end/ObjectPropertiesSection.js:
2750         * inspector/front-end/externs.js:
2751
2752 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2753
2754         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2755         https://bugs.webkit.org/show_bug.cgi?id=102649
2756
2757         Reviewed by Adam Barth.
2758
2759         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2760         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2761         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2762
2763         No new tests as there is no new functionality.
2764
2765         * Modules/webaudio/AudioBufferSourceNode.cpp:
2766         (WebCore::AudioBufferSourceNode::looping):
2767         (WebCore::AudioBufferSourceNode::setLooping):
2768         * Modules/webaudio/AudioContext.cpp:
2769         (WebCore::AudioContext::AudioContext):
2770         (WebCore::AudioContext::stop):
2771         (WebCore::AudioContext::fireCompletionEvent):
2772         (WebCore::AudioContext::reportMemoryUsage):
2773         * Modules/webaudio/AudioContext.h:
2774         (WebCore::AudioContext::scriptExecutionContext):
2775         (AudioContext):
2776         * Modules/webaudio/ScriptProcessorNode.cpp:
2777         (WebCore::ScriptProcessorNode::fireProcessEvent):
2778         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2779
2780 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2781
2782         [V8] Remove unused variables from CodeGeneratorV8.pm
2783         https://bugs.webkit.org/show_bug.cgi?id=102648
2784
2785         Reviewed by Adam Barth.
2786
2787         No tests. No change in generated code.
2788
2789         * bindings/scripts/CodeGeneratorV8.pm:
2790         (GenerateInterface):
2791         (GenerateHeader):
2792         (GetInternalFields):
2793         (GenerateNormalAttrGetter):
2794         (GenerateSingleBatchedAttribute):
2795         (GenerateImplementationCustomCall):
2796         (GenerateFunctionCallString):
2797         (CreateCustomSignature):
2798         (GetContextEnableFunction):
2799
2800 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2801
2802         Remove IDLStructure.pm
2803         https://bugs.webkit.org/show_bug.cgi?id=102642
2804
2805         Reviewed by Adam Barth.
2806
2807         Previously IDLStructure.pm was full of regular expressions to
2808         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2809         just contains several data structures for the IDL parser. We can
2810         move them to IDLParser.pm and thus remove IDLStructure.pm.
2811
2812         No tests. No change in generated code.
2813
2814         * CMakeLists.txt:
2815         * DerivedSources.make:
2816         * DerivedSources.pri:
2817         * GNUmakefile.am:
2818         * WebCore.gyp/WebCore.gyp:
2819         * WebCore.vcproj/MigrateScripts:
2820         * WebCore.vcproj/WebCore.vcproj:
2821         * WebCore.xcodeproj/project.pbxproj:
2822         * bindings/scripts/IDLParser.pm:
2823         (Parse):
2824         (parseInterface):
2825         (parseException):
2826         (parseConst):
2827         (parseAttributeRest):
2828         (parseOperationRest):
2829         (parseOptionalOrRequiredArgument):
2830         (parseExceptionField):
2831         (parseInterfaceOld):
2832         (parseExceptionOld):
2833         (parseAttributeRestOld):
2834         (applyExtendedAttributeList):
2835         * bindings/scripts/IDLStructure.pm: Removed.
2836
2837 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2838
2839         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2840         https://bugs.webkit.org/show_bug.cgi?id=102639
2841
2842         Reviewed by Adam Barth.
2843
2844         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2845
2846         No tests. No change in generated code.
2847
2848         * bindings/scripts/CodeGeneratorV8.pm:
2849         (GenerateNormalAttrGetter):
2850         (GenerateNormalAttrSetter):
2851         (GenerateFunctionCallback):
2852         (GenerateNamedConstructorCallback):
2853         (GenerateImplementationIndexer):
2854         (GenerateImplementationNamedPropertyGetter):
2855         (GenerateImplementation):
2856
2857 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2858
2859         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2860         https://bugs.webkit.org/show_bug.cgi?id=102356
2861
2862         Reviewed by Adam Barth.
2863
2864         A clean-up code was moved from uninitialize to clear method.
2865         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2866         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2867         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2868         adoptRef was added in createOfflineContext method.
2869
2870         Test: inspector-protocol/nmi-webaudio-leak-test.html
2871
2872         * Modules/webaudio/AudioContext.cpp:
2873         (WebCore::AudioContext::createOfflineContext):
2874         (WebCore::AudioContext::AudioContext):
2875         (WebCore::AudioContext::constructCommon):
2876         (WebCore::AudioContext::~AudioContext):
2877         (WebCore::AudioContext::clear):
2878         (WebCore::AudioContext::uninitialize):
2879         (WebCore::AudioContext::stopDispatch):
2880         (WebCore::AudioContext::stop):
2881         (WebCore::AudioContext::markForDeletion):
2882         (WebCore::AudioContext::scheduleNodeDeletion):
2883         (WebCore::AudioContext::deleteMarkedNodes):
2884         * Modules/webaudio/AudioContext.h:
2885         (AudioContext):
2886         * bindings/v8/custom/V8AudioContextCustom.cpp:
2887         (WebCore::V8AudioContext::constructorCallback):
2888         * inspector/InspectorMemoryAgent.cpp:
2889         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2890         * platform/PlatformMemoryInstrumentation.cpp:
2891         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2892         (WebCore):
2893         * platform/PlatformMemoryInstrumentation.h:
2894         (PlatformMemoryInstrumentation):
2895         (WebCore):
2896
2897 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2898
2899         min/max/step support for calendar picker on datetime/datetime-local
2900         https://bugs.webkit.org/show_bug.cgi?id=102628
2901
2902         Reviewed by Kent Tamura.
2903
2904         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2905         when values are limited by min/max/step attributes.
2906
2907         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2908
2909         * Resources/pagepopups/calendarPicker.js:
2910         (CalendarPicker.prototype._stepMismatch):
2911         Returns true iff there are any allowed values in the given day.
2912
2913 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2914
2915         Remove non-existent directories from the make system
2916         https://bugs.webkit.org/show_bug.cgi?id=102632
2917
2918         Reviewed by Adam Barth.
2919
2920         Remove (non-existent) symbian references from the exclude list in gyp project files.
2921
2922         No new tests as there is no new functionality.
2923
2924         * WebCore.gyp/WebCore.gyp:
2925
2926 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2927
2928         [WIN] Add a IMLangFontLinkType typedef
2929         https://bugs.webkit.org/show_bug.cgi?id=102584
2930
2931         Reviewed by Brent Fulgham.
2932
2933         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2934
2935         * platform/graphics/FontCache.h:
2936         (WebCore):
2937         * platform/graphics/win/FontCacheWin.cpp:
2938         (WebCore::FontCache::getFontLinkInterface):
2939         (WebCore::getCJKCodePageMasks):
2940         (WebCore::createMLangFont):
2941         (WebCore::FontCache::getFontDataForCharacters):
2942         * platform/graphics/win/SimpleFontDataWin.cpp:
2943         (WebCore::SimpleFontData::containsCharacters):
2944         * platform/graphics/wince/FontCacheWinCE.cpp:
2945         (WebCore):
2946         (WebCore::FontCache::getFontLinkInterface):
2947         (WebCore::getCJKCodePageMasks):
2948         (WebCore::FontCache::getFontDataForCharacters):
2949         * platform/graphics/wince/FontPlatformData.cpp:
2950         (WebCore::FontFamilyCodePageInfo::codePages):
2951         (WebCore::FixedSizeFontData::create):
2952         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2953         (WebCore::GlyphPage::fill):
2954
2955 2012-11-18  Mike West  <mkwst@chromium.org>
2956
2957         Web Inspector: Remove unused ConsoleMessage constructor.
2958         https://bugs.webkit.org/show_bug.cgi?id=102590
2959
2960         Reviewed by Brent Fulgham.
2961
2962         We currently have a ConsoleMessage constructor that's unused. Let's
2963         kill it.
2964
2965         * inspector/ConsoleMessage.cpp:
2966         * inspector/ConsoleMessage.h:
2967         (ConsoleMessage):
2968             Removing an unused constructor variant.
2969
2970 2012-11-18  Andreas Kling  <akling@apple.com>
2971
2972         StyledElement: Make handling the "style" attribute a litte faster.
2973         <http://webkit.org/b/102623>
2974
2975         Reviewed by Ojan Vafai.
2976
2977         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
2978         by hoisting the parseAttribute() logic up into attributeChanged().
2979         Did the same thing with Element::parseAttribute() for consistency.
2980
2981         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
2982
2983         * dom/Element.cpp:
2984         (WebCore::Element::attributeChanged):
2985         * dom/Element.h:
2986         (WebCore::Element::parseAttribute):
2987         * dom/StyledElement.cpp:
2988         (WebCore::StyledElement::attributeChanged):
2989         * dom/StyledElement.h:
2990         (StyledElement):
2991
2992 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2993
2994         [CMake] Consolidate common input files
2995         https://bugs.webkit.org/show_bug.cgi?id=101632
2996
2997         Reviewed by Rob Buis.
2998
2999         Consolidate and sort the list of files, move common source files
3000         into CMakeLists.txt from the port specific files.
3001
3002         No new tests as there is no new functionality.
3003
3004         * CMakeLists.txt:
3005         * PlatformBlackBerry.cmake:
3006         * PlatformEfl.cmake:
3007         * PlatformWinCE.cmake:
3008
3009 2012-11-18  Andreas Kling  <akling@apple.com>
3010
3011         Tighten small SharedBuffers by reserving the exact amount of space needed.
3012         <http://webkit.org/b/102625>
3013
3014         Reviewed by Anders Carlsson.
3015
3016         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
3017         amount of space needed instead of leaving it to Vector<char>::append().
3018
3019         1.86MB progression on Membuster3.
3020
3021         * platform/SharedBuffer.cpp:
3022         (WebCore::SharedBuffer::append):
3023
3024 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3025
3026         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
3027         https://bugs.webkit.org/show_bug.cgi?id=101311
3028
3029         Reviewed by Darin Adler.
3030
3031         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
3032         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
3033         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
3034         getter and namedItem return exactly one node or null as specified in HTML5:
3035         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
3036
3037         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
3038         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
3039
3040         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
3041
3042         Test: fast/dom/html-collections-namedItem.html
3043
3044         * CMakeLists.txt:
3045         * DerivedSources.cpp:
3046         * DerivedSources.make:
3047         * DerivedSources.pri:
3048         * GNUmakefile.list.am:
3049         * Target.pri:
3050         * UseJSC.cmake:
3051         * UseV8.cmake:
3052         * WebCore.gypi:
3053         * WebCore.vcproj/WebCore.vcproj:
3054         * WebCore.xcodeproj/project.pbxproj:
3055         * bindings/js/JSBindingsAllInOne.cpp:
3056         * bindings/js/JSHTMLAllCollectionCustom.cpp:
3057         (WebCore::getNamedItems):
3058         * bindings/js/JSHTMLCollectionCustom.cpp:
3059         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
3060         (WebCore::toJS):
3061         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
3062         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3063         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
3064         (WebCore::JSHTMLFormControlsCollection::nameGetter):
3065         (WebCore::JSHTMLFormControlsCollection::namedItem):
3066         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
3067         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3068         This is a bug. It should be a live NodeList instead.
3069         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
3070         (WebCore::JSHTMLOptionsCollection::nameGetter):
3071         (WebCore::JSHTMLOptionsCollection::namedItem):
3072         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
3073         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
3074         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
3075         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
3076         (WebCore::getNamedItems): Added a comment about how we should be returning
3077         a HTMLCollection when there are multiple matches.
3078         (WebCore::getItem):
3079         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3080         (WebCore::V8HTMLAllCollection::namedItemCallback):
3081         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
3082         (WebCore::V8HTMLCollection::namedPropertyGetter):
3083         (WebCore::toV8):
3084         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
3085         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3086         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
3087         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
3088         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3089         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3090         This is a bug. It should be a live NodeList instead.
3091         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
3092         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
3093         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
3094         * dom/Document.h:
3095         (Document):
3096         * dom/Element.cpp:
3097         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
3098         a HTMLFormControlsCollection instead of a HTMLCollection.
3099         * html/CollectionType.h:
3100         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3101         * html/HTMLFieldSetElement.cpp:
3102         * html/HTMLFieldSetElement.h:
3103         * html/HTMLFormCollection.cpp: Removed.
3104         * html/HTMLFormCollection.h: Removed.
3105         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3106         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3107         (WebCore::HTMLFormControlsCollection::create):
3108         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3109         (WebCore::HTMLFormControlsCollection::formControlElements):
3110         (WebCore::HTMLFormControlsCollection::formImageElements):
3111         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3112         (WebCore::HTMLFormControlsCollection::namedItem):
3113         (WebCore::HTMLFormControlsCollection::updateNameCache):
3114         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3115         (HTMLFormControlsCollection):
3116         * html/HTMLFormControlsCollection.idl: Added.
3117         * html/HTMLFormElement.cpp:
3118         * html/HTMLFormElement.h:
3119         * html/HTMLOptionsCollection.idl:
3120
3121 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3122
3123         [V8] Rename $className to $v8InterfaceName
3124         https://bugs.webkit.org/show_bug.cgi?id=102487
3125
3126         Reviewed by Adam Barth.
3127
3128         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3129         We should rename $className to $v8InterfaceName. Also we can
3130         remove GetCallbackClassName().
3131
3132         No tests. No change in behavior.
3133
3134         * bindings/scripts/CodeGeneratorV8.pm:
3135         (GenerateHeader):
3136         (GetHeaderClassInclude):
3137         (GenerateDomainSafeFunctionGetter):
3138         (GenerateDomainSafeFunctionSetter):
3139         (GenerateParametersCheck):
3140         (GenerateImplementation):
3141         (GenerateHeaderContentHeader):
3142         (GenerateImplementationContentHeader):
3143         (GenerateCallbackHeader):
3144         (GenerateCallbackImplementation):
3145         (GenerateToV8Converters):
3146         (GetPassRefPtrType):
3147
3148 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3149
3150         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3151         https://bugs.webkit.org/show_bug.cgi?id=102499
3152
3153         Reviewed by Adam Barth.
3154
3155         No tests. No change in behavior.
3156
3157         * bindings/scripts/CodeGeneratorV8.pm:
3158         (GenerateNormalAttrGetter):
3159         (GenerateNormalAttrSetter):
3160         (GenerateParametersCheckExpression):
3161         (GenerateParametersCheck):
3162         (GenerateFunctionCallString):
3163         (GetNativeTypeFromSignature):
3164         (TranslateParameter):
3165         (TypeCanFailConversion):
3166         (JSValueToNative):
3167         (NativeToJSValue):
3168
3169 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3170
3171         Remove GenerateModule() from all code generators
3172         https://bugs.webkit.org/show_bug.cgi?id=102490
3173
3174         Reviewed by Adam Barth.
3175
3176         WebKit IDL files no longer support modules. The Web IDL spec
3177         no longer supports modules. We can remove it from code generators.
3178
3179         No tests. No change in behavior.
3180
3181         * bindings/scripts/CodeGenerator.pm:
3182         (ProcessDocument):
3183         * bindings/scripts/CodeGeneratorCPP.pm:
3184         * bindings/scripts/CodeGeneratorGObject.pm:
3185         * bindings/scripts/CodeGeneratorJS.pm:
3186         * bindings/scripts/CodeGeneratorObjC.pm:
3187         * bindings/scripts/CodeGeneratorV8.pm:
3188
3189 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3190
3191         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3192         https://bugs.webkit.org/show_bug.cgi?id=102497
3193
3194         Reviewed by Adam Barth.
3195
3196         No tests. No change in behavior.
3197
3198         * bindings/scripts/CodeGeneratorV8.pm:
3199         (GenerateDomainSafeFunctionGetter):
3200         (GenerateNormalAttrGetter):
3201         (GenerateFunctionCallString):
3202
3203 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3204
3205         Unreviewed, rolling out r135074.
3206         http://trac.webkit.org/changeset/135074
3207         https://bugs.webkit.org/show_bug.cgi?id=102619
3208
3209         Made most layout tests crash. (Requested by rakuco on
3210         #webkit).
3211
3212         * PlatformEfl.cmake:
3213         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3214         (WebCore::GraphicsContext3D::create):
3215         (WebCore::GraphicsContext3D::GraphicsContext3D):
3216         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3217         (WebCore::GraphicsContext3D::makeContextCurrent):
3218         (WebCore::GraphicsContext3D::setContextLostCallback):
3219         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3220         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3221         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3222         (WebCore::GraphicsContext3DPrivate::createSurface):
3223         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3224         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3225         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3226         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3227         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3228         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3229         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3230         (GraphicsContext3DPrivate):
3231         * platform/graphics/opengl/GLDefs.h: Removed.
3232         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3233         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3234         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3235         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3236         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3237         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3238         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3239         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3240
3241 2012-11-18  Antti Koivisto  <antti@apple.com>
3242
3243         REGRESSION(r129644): User StyleSheet not applying
3244         https://bugs.webkit.org/show_bug.cgi?id=102110
3245
3246         Reviewed by Andreas Kling.
3247
3248         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3249         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3250         
3251         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3252         It also generally cleans up the code around injected and user stylesheets.
3253
3254         Tests: userscripts/user-script-and-stylesheet.html
3255                userscripts/user-stylesheet-invalidate.html
3256
3257         * css/StyleResolver.cpp:
3258         (WebCore::StyleResolver::StyleResolver):
3259         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3260         (WebCore::collectCSSOMWrappers):
3261         * css/StyleResolver.h:
3262         (StyleResolver):
3263         * dom/Document.cpp:
3264         (WebCore::Document::setCompatibilityMode):
3265         * dom/DocumentStyleSheetCollection.cpp:
3266         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3267         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3268         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3269         (WebCore):
3270         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3271         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3272         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3273         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3274         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3275         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3276         * dom/DocumentStyleSheetCollection.h:
3277         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3278         (DocumentStyleSheetCollection):
3279         * page/PageGroup.cpp:
3280         (WebCore::PageGroup::addUserStyleSheetToWorld):
3281         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3282         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3283         (WebCore::PageGroup::removeAllUserContent):
3284         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3285         * page/PageGroup.h:
3286         (PageGroup):
3287
3288 2012-11-18  Adam Barth  <abarth@webkit.org>
3289
3290         Unreviewed.
3291
3292         Update run-bindings-tests baselines after
3293         http://trac.webkit.org/changeset/135063
3294
3295         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3296         (JSTestActiveDOMObjectOwner):
3297         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3298         (JSTestCustomNamedGetterOwner):
3299         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3300         (JSTestEventConstructorOwner):
3301         * bindings/scripts/test/JS/JSTestEventTarget.h:
3302         (JSTestEventTargetOwner):
3303         * bindings/scripts/test/JS/JSTestException.h:
3304         (JSTestExceptionOwner):
3305         * bindings/scripts/test/JS/JSTestInterface.h:
3306         (JSTestInterfaceOwner):
3307         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3308         (JSTestMediaQueryListListenerOwner):
3309         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3310         (JSTestNamedConstructorOwner):
3311         * bindings/scripts/test/JS/JSTestObj.h:
3312         (JSTestObjOwner):
3313         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3314         (JSTestOverloadedConstructorsOwner):
3315         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3316         (JSTestSerializedScriptValueInterfaceOwner):
3317
3318 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3319
3320         Make convertToLayerCoords iterative, rather than recursive
3321         https://bugs.webkit.org/show_bug.cgi?id=102618
3322
3323         Reviewed by Antti Koivisto.
3324
3325         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3326         Change it to be iterative, rather than recursive, so that the
3327         bulk of the function can be inlined.
3328         
3329         Was tested with assertions against the old code during development.
3330
3331         * rendering/RenderLayer.cpp:
3332         (WebCore::accumulateOffsetTowardsAncestor):
3333         (WebCore::RenderLayer::convertToLayerCoords):
3334
3335 2012-11-18  Andreas Kling  <akling@apple.com>
3336
3337         Inline the StyledElement constructor.
3338         <http://webkit.org/b/102615>
3339
3340         Reviewed by Antti Koivisto.
3341
3342         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3343         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3344
3345         * dom/StyledElement.cpp:
3346         * dom/StyledElement.h:
3347         (WebCore::StyledElement::StyledElement):
3348
3349 2012-11-18  Andreas Kling  <akling@apple.com>
3350
3351         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3352         <http://webkit.org/b/102614>
3353
3354         Reviewed by Anders Carlsson.
3355
3356         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3357         to know if it's present. If it's not present, 'value' argument will be null.
3358
3359         * html/HTMLMediaElement.cpp:
3360         (WebCore::HTMLMediaElement::parseAttribute):
3361
3362 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3363
3364         [EFL] Refactor GraphicsContext3DEFL.
3365         https://bugs.webkit.org/show_bug.cgi?id=101291.
3366
3367         Reviewed by Kenneth Rohde Christiansen.
3368
3369         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3370         GraphicsContext3DPrivate needs to handle the following cases:
3371         1) To provide an off-screen buffer for accelerated composition.
3372         2) Render to a current context.
3373         3) To render directly to host window. (currently not supported.)
3374
3375         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3376         the other supported case. Evas acts as a glue layer to provide us with appropriate
3377         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3378         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3379
3380         It would be for our advantage to be able to take in to use any optimisations/extensions
3381         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3382         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3383         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3384         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3385         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3386
3387         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3388         It uses GL extension ARB_robustness (when available) to detect driver resets.
3389         It defines a simple interface for things that need to be handled by the context. Support
3390         for multi-threaded usage and shared context-group would be added later.
3391
3392         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3393         It defines a simple interface for things that need to be handled by the surface.
3394         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3395         can be used to render into this off-screen area.
3396
3397         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3398
3399         * PlatformEfl.cmake:
3400         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3401         (WebCore::GraphicsContext3D::create):
3402         (WebCore::GraphicsContext3D::GraphicsContext3D):
3403         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3404         (WebCore::GraphicsContext3D::makeContextCurrent):
3405         (WebCore::GraphicsContext3D::setContextLostCallback):
3406         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3407         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3408         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3409         (GraphicsContext3DPrivate::releaseResources):
3410         (GraphicsContext3DPrivate::setContextLostCallback):
3411         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3412         (GraphicsContext3DPrivate::makeContextCurrent):
3413         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3414         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3415         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3416         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3417         (GraphicsContext3DPrivate):
3418         * platform/graphics/opengl/GLDefs.h: Added.
3419         (WebCore):
3420         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3421         (WebCore):
3422         (WebCore::GLPlatformContext::createContext):
3423         (WebCore::GLPlatformContext::createOffScreenContext):
3424         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3425         (WebCore::GLPlatformContext::GLPlatformContext):
3426         (WebCore::GLPlatformContext::~GLPlatformContext):
3427         (WebCore::GLPlatformContext::makeCurrent):
3428         (WebCore::GLPlatformContext::isValid):
3429         (WebCore::GLPlatformContext::releaseCurrent):
3430         (WebCore::GLPlatformContext::handle):
3431         (WebCore::GLPlatformContext::isCurrentContext):
3432         (WebCore::GLPlatformContext::initialize):
3433         (WebCore::GLPlatformContext::getCurrent):
3434         (WebCore::GLPlatformContext::platformMakeCurrent):
3435         (WebCore::GLPlatformContext::platformReleaseCurrent):
3436         (WebCore::GLPlatformContext::destroy):
3437         * platform/graphics/opengl/GLPlatformContext.h: Added.
3438         (WebCore):
3439         (GLPlatformContext):
3440         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3441         (WebCore):
3442         (WebCore::GLPlatformSurface::createOffscreenSurface):
3443         (WebCore::GLPlatformSurface::createTransportSurface):
3444         (WebCore::GLPlatformSurface::GLPlatformSurface):
3445         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3446         (WebCore::GLPlatformSurface::handle):
3447         (WebCore::GLPlatformSurface::geometry):
3448         (WebCore::GLPlatformSurface::sharedDisplay):
3449         (WebCore::GLPlatformSurface::configuration):
3450         (WebCore::GLPlatformSurface::swapBuffers):
3451         (WebCore::GLPlatformSurface::copyTexture):
3452         (WebCore::GLPlatformSurface::updateContents):
3453         (WebCore::GLPlatformSurface::setGeometry):
3454         (WebCore::GLPlatformSurface::destroy):
3455         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3456         (WebCore):
3457         (GLPlatformSurface):
3458             GLXOffScreenContext creates an off-screen context. This is used when
3459             renderstyle is RenderOffscreen.
3460             It uses GL extension GLX_ARB_create_context (when available)
3461             to create a context else falls back to use glXCreateNewContext.
3462         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3463         (WebCore):
3464         (WebCore::initializeARBExtensions):
3465         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3466         (WebCore::GLXOffScreenContext::initialize):
3467         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3468         (WebCore::GLXOffScreenContext::isCurrentContext):
3469         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3470         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3471         (WebCore::GLXOffScreenContext::freeResources):
3472         (WebCore::GLXOffScreenContext::destroy):
3473             GLXCurrentContextWrapper acts as a wrapper for current context.
3474             This is used when renderstyle is RenderToCurrentGLContext.
3475         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3476         (WebCore):
3477         (GLXCurrentContextWrapper):
3478         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3479         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3480         (GLXOffScreenContext):
3481         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3482         (WebCore):
3483         (WebCore::GLXSurface::GLXSurface):
3484         (WebCore::GLXSurface::~GLXSurface):
3485         (WebCore::GLXSurface::visualInfo):
3486         (WebCore::GLXSurface::xWindow):
3487         (WebCore::GLXSurface::pBufferConfiguration):
3488         (WebCore::GLXSurface::transportSurfaceConfiguration):
3489         (WebCore::GLXSurface::isXRenderExtensionSupported):
3490             GLXTransportSurface creates Window and uses it as an off-screen surface.
3491             Any GLContext that was created with respect to configuration can be used
3492             to render into this.
3493             This is used when contents of the buffer are to be provided to UI Process
3494             for display.
3495         (WebCore::GLXTransportSurface::GLXTransportSurface):
3496         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3497         (WebCore::GLXTransportSurface::configuration):
3498         (WebCore::GLXTransportSurface::swapBuffers):
3499         (WebCore::GLXTransportSurface::setGeometry):
3500         (WebCore::GLXTransportSurface::initialize):
3501         (WebCore::GLXTransportSurface::destroy):
3502         (WebCore::GLXTransportSurface::freeResources):
3503            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3504            Any GLContext that was created with respect to configuration can be used
3505            to render into this.
3506         (WebCore::GLXPBuffer::GLXPBuffer):
3507         (WebCore::GLXPBuffer::~GLXPBuffer):
3508         (WebCore::GLXPBuffer::initialize):
3509         (WebCore::GLXPBuffer::configuration):
3510         (WebCore::GLXPBuffer::destroy):
3511         (WebCore::GLXPBuffer::freeResources):
3512         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3513         (WebCore):
3514             Creates X resources which are shared between surface and context.
3515         (SharedX11Resources):
3516         (WebCore::SharedX11Resources::create):
3517         (WebCore::SharedX11Resources::deref):
3518         (WebCore::SharedX11Resources::getXWindow):
3519         (WebCore::SharedX11Resources::display):
3520         (WebCore::SharedX11Resources::visualInfo):
3521         (WebCore::SharedX11Resources::createConfig):
3522         (WebCore::SharedX11Resources::pBufferContextConfig):
3523         (WebCore::SharedX11Resources::surfaceContextConfig):
3524         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3525         (WebCore::SharedX11Resources::SharedX11Resources):
3526         (WebCore::SharedX11Resources::~SharedX11Resources):
3527         (GLXSurface):
3528         (GLXTransportSurface):
3529         (GLXPBuffer):
3530
3531 2012-11-18  Andreas Kling  <akling@apple.com>
3532
3533         Element::parseAttribute() should take name & value as separate arguments.
3534         <http://webkit.org/b/102608>
3535
3536         Reviewed by Antti Koivisto.
3537
3538         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3539         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3540         creating a temporary Attribute is no longer necessary.
3541
3542         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3543
3544         * bindings/js/ScriptEventListener.cpp:
3545         (WebCore::createAttributeEventListener):
3546         * bindings/js/ScriptEventListener.h:
3547         (WebCore):
3548         * bindings/v8/ScriptEventListener.cpp:
3549         (WebCore::createAttributeEventListener):
3550         * bindings/v8/ScriptEventListener.h:
3551         (WebCore):
3552         * dom/Element.cpp:
3553         (WebCore::Element::attributeChanged):
3554         (WebCore::Element::parseAttribute):
3555         * dom/Element.h:
3556         (Element):
3557         * dom/StyledElement.cpp:
3558         (WebCore::StyledElement::parseAttribute):
3559         * dom/StyledElement.h:
3560         (StyledElement):
3561         * html/HTMLAnchorElement.cpp:
3562         (WebCore::HTMLAnchorElement::parseAttribute):
3563         * html/HTMLAnchorElement.h:
3564         (HTMLAnchorElement):
3565         * html/HTMLAppletElement.cpp:
3566         (WebCore::HTMLAppletElement::parseAttribute):
3567         * html/HTMLAppletElement.h:
3568         (HTMLAppletElement):
3569         * html/HTMLAreaElement.cpp:
3570         (WebCore::HTMLAreaElement::parseAttribute):
3571         * html/HTMLAreaElement.h:
3572         (HTMLAreaElement):
3573         * html/HTMLBaseElement.cpp:
3574         (WebCore::HTMLBaseElement::parseAttribute):
3575         * html/HTMLBaseElement.h:
3576         (HTMLBaseElement):
3577         * html/HTMLBodyElement.cpp:
3578         (WebCore::HTMLBodyElement::parseAttribute):
3579         * html/HTMLBodyElement.h:
3580         (HTMLBodyElement):
3581         * html/HTMLButtonElement.cpp:
3582         (WebCore::HTMLButtonElement::parseAttribute):
3583         * html/HTMLButtonElement.h:
3584         * html/HTMLCanvasElement.cpp:
3585         (WebCore::HTMLCanvasElement::parseAttribute):
3586         * html/HTMLCanvasElement.h:
3587         (HTMLCanvasElement):
3588         * html/HTMLDetailsElement.cpp:
3589         (WebCore::HTMLDetailsElement::parseAttribute):
3590         * html/HTMLDetailsElement.h:
3591         (HTMLDetailsElement):
3592         * html/HTMLElement.cpp:
3593         (WebCore::HTMLElement::parseAttribute):
3594         (WebCore::HTMLElement::dirAttributeChanged):
3595         * html/HTMLElement.h:
3596         (HTMLElement):
3597         * html/HTMLEmbedElement.cpp:
3598         (WebCore::HTMLEmbedElement::parseAttribute):
3599         * html/HTMLEmbedElement.h:
3600         (HTMLEmbedElement):
3601         * html/HTMLFormControlElement.cpp:
3602         (WebCore::HTMLFormControlElement::parseAttribute):
3603         * html/HTMLFormControlElement.h:
3604         (HTMLFormControlElement):
3605         * html/HTMLFormElement.cpp:
3606         (WebCore::HTMLFormElement::parseAttribute):
3607         * html/HTMLFormElement.h:
3608         (HTMLFormElement):
3609         * html/HTMLFrameElement.cpp:
3610         (WebCore::HTMLFrameElement::parseAttribute):
3611         * html/HTMLFrameElement.h:
3612         (HTMLFrameElement):
3613         * html/HTMLFrameElementBase.cpp:
3614         (WebCore::HTMLFrameElementBase::parseAttribute):
3615         * html/HTMLFrameElementBase.h:
3616         (HTMLFrameElementBase):
3617         * html/HTMLFrameSetElement.cpp:
3618         (WebCore::HTMLFrameSetElement::parseAttribute):
3619         * html/HTMLFrameSetElement.h:
3620         (HTMLFrameSetElement):
3621         * html/HTMLIFrameElement.cpp:
3622         (WebCore::HTMLIFrameElement::parseAttribute):
3623         * html/HTMLIFrameElement.h:
3624         (HTMLIFrameElement):
3625         * html/HTMLImageElement.cpp:
3626         (WebCore::HTMLImageElement::parseAttribute):
3627         * html/HTMLImageElement.h:
3628         (HTMLImageElement):
3629         * html/HTMLInputElement.cpp:
3630         (WebCore::HTMLInputElement::parseAttribute):
3631         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3632         * html/HTMLInputElement.h:
3633         (HTMLInputElement):
3634         * html/HTMLKeygenElement.cpp:
3635         (WebCore::HTMLKeygenElement::parseAttribute):
3636         * html/HTMLKeygenElement.h:
3637         (HTMLKeygenElement):
3638         * html/HTMLLIElement.cpp:
3639         (WebCore::HTMLLIElement::parseAttribute):
3640         * html/HTMLLIElement.h:
3641         (HTMLLIElement):
3642         * html/HTMLLinkElement.cpp:
3643         (WebCore::HTMLLinkElement::parseAttribute):
3644         * html/HTMLLinkElement.h:
3645         (HTMLLinkElement):
3646         * html/HTMLMapElement.cpp:
3647         (WebCore::HTMLMapElement::parseAttribute):
3648         * html/HTMLMapElement.h:
3649         (HTMLMapElement):
3650         * html/HTMLMediaElement.cpp:
3651         (WebCore::HTMLMediaElement::parseAttribute):
3652         * html/HTMLMediaElement.h:
3653         * html/HTMLMetaElement.cpp:
3654         (WebCore::HTMLMetaElement::parseAttribute):
3655         * html/HTMLMetaElement.h:
3656         (HTMLMetaElement):
3657         * html/HTMLMeterElement.cpp:
3658         (WebCore::HTMLMeterElement::parseAttribute):
3659         * html/HTMLMeterElement.h:
3660         (HTMLMeterElement):
3661         * html/HTMLOListElement.cpp:
3662         (WebCore::HTMLOListElement::parseAttribute):
3663         * html/HTMLOListElement.h:
3664         (HTMLOListElement):
3665         * html/HTMLObjectElement.cpp:
3666         (WebCore::HTMLObjectElement::parseAttribute):
3667         * html/HTMLObjectElement.h:
3668         (HTMLObjectElement):
3669         * html/HTMLOptGroupElement.cpp:
3670         (WebCore::HTMLOptGroupElement::parseAttribute):
3671         * html/HTMLOptGroupElement.h:
3672         * html/HTMLOptionElement.cpp:
3673         (WebCore::HTMLOptionElement::parseAttribute):
3674         * html/HTMLOptionElement.h:
3675         (HTMLOptionElement):
3676         * html/HTMLOutputElement.cpp:
3677         (WebCore::HTMLOutputElement::parseAttribute):
3678         * html/HTMLOutputElement.h:
3679         (HTMLOutputElement):
3680         * html/HTMLProgressElement.cpp:
3681         (WebCore::HTMLProgressElement::parseAttribute):
3682         * html/HTMLProgressElement.h:
3683         * html/HTMLScriptElement.cpp:
3684         (WebCore::HTMLScriptElement::parseAttribute):
3685         * html/HTMLScriptElement.h:
3686         (HTMLScriptElement):
3687         * html/HTMLSelectElement.cpp:
3688         (WebCore::HTMLSelectElement::parseAttribute):
3689         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3690         * html/HTMLSelectElement.h:
3691         * html/HTMLStyleElement.cpp:
3692         (WebCore::HTMLStyleElement::parseAttribute):
3693         * html/HTMLStyleElement.h:
3694         (HTMLStyleElement):
3695         * html/HTMLTableCellElement.cpp:
3696         (WebCore::HTMLTableCellElement::parseAttribute):
3697         * html/HTMLTableCellElement.h:
3698         (HTMLTableCellElement):
3699         * html/HTMLTableColElement.cpp:
3700         (WebCore::HTMLTableColElement::parseAttribute):
3701         * html/HTMLTableColElement.h:
3702         (HTMLTableColElement):
3703         * html/HTMLTableElement.cpp:
3704         (WebCore::HTMLTableElement::parseAttribute):
3705         * html/HTMLTableElement.h:
3706         (HTMLTableElement):
3707         * html/HTMLTextAreaElement.cpp:
3708         (WebCore::HTMLTextAreaElement::parseAttribute):
3709         * html/HTMLTextAreaElement.h:
3710         (HTMLTextAreaElement):
3711         * html/HTMLTextFormControlElement.cpp:
3712         (WebCore::HTMLTextFormControlElement::parseAttribute):
3713         * html/HTMLTextFormControlElement.h:
3714         (HTMLTextFormControlElement):
3715         * html/HTMLTrackElement.cpp:
3716         (WebCore::HTMLTrackElement::parseAttribute):
3717         * html/HTMLTrackElement.h:
3718         (HTMLTrackElement):
3719         * html/HTMLVideoElement.cpp:
3720         (WebCore::HTMLVideoElement::parseAttribute):
3721         * html/HTMLVideoElement.h:
3722         (HTMLVideoElement):
3723         * html/shadow/HTMLContentElement.cpp:
3724         (WebCore::HTMLContentElement::parseAttribute):
3725         * html/shadow/HTMLContentElement.h:
3726         (HTMLContentElement):
3727         * mathml/MathMLElement.cpp:
3728         (WebCore::MathMLElement::parseAttribute):
3729         * mathml/MathMLElement.h:
3730         (MathMLElement):
3731         * svg/SVGAElement.cpp:
3732         (WebCore::SVGAElement::parseAttribute):
3733         * svg/SVGAElement.h:
3734         (SVGAElement):
3735         * svg/SVGAnimateMotionElement.cpp:
3736         (WebCore::SVGAnimateMotionElement::parseAttribute):
3737         * svg/SVGAnimateMotionElement.h:
3738         (SVGAnimateMotionElement):
3739         * svg/SVGAnimateTransformElement.cpp:
3740         (WebCore::SVGAnimateTransformElement::parseAttribute):
3741         * svg/SVGAnimateTransformElement.h:
3742         (SVGAnimateTransformElement):
3743         * svg/SVGAnimationElement.cpp:
3744         (WebCore::SVGAnimationElement::parseAttribute):
3745         * svg/SVGAnimationElement.h:
3746         (SVGAnimationElement):
3747         * svg/SVGCircleElement.cpp:
3748         (WebCore::SVGCircleElement::parseAttribute):
3749         * svg/SVGCircleElement.h:
3750         (SVGCircleElement):
3751         * svg/SVGClipPathElement.cpp:
3752         (WebCore::SVGClipPathElement::parseAttribute):
3753         * svg/SVGClipPathElement.h:
3754         (SVGClipPathElement):
3755         * svg/SVGComponentTransferFunctionElement.cpp:
3756         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3757         * svg/SVGComponentTransferFunctionElement.h:
3758         (SVGComponentTransferFunctionElement):
3759         * svg/SVGCursorElement.cpp:
3760         (WebCore::SVGCursorElement::parseAttribute):
3761         * svg/SVGCursorElement.h:
3762         (SVGCursorElement):
3763         * svg/SVGElement.cpp:
3764         (WebCore::SVGElement::reportAttributeParsingError):
3765         (WebCore::SVGElement::parseAttribute):
3766         * svg/SVGElement.h:
3767         (SVGElement):
3768         * svg/SVGEllipseElement.cpp:
3769         (WebCore::SVGEllipseElement::parseAttribute):
3770         * svg/SVGEllipseElement.h:
3771         (SVGEllipseElement):
3772         * svg/SVGExternalResourcesRequired.cpp:
3773         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3774         * svg/SVGExternalResourcesRequired.h:
3775         (SVGExternalResourcesRequired):
3776         * svg/SVGFEBlendElement.cpp:
3777         (WebCore::SVGFEBlendElement::parseAttribute):
3778         * svg/SVGFEBlendElement.h:
3779         (SVGFEBlendElement):
3780         * svg/SVGFEColorMatrixElement.cpp:
3781         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3782         * svg/SVGFEColorMatrixElement.h:
3783         (SVGFEColorMatrixElement):
3784         * svg/SVGFEComponentTransferElement.cpp:
3785         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3786         * svg/SVGFEComponentTransferElement.h:
3787         (SVGFEComponentTransferElement):
3788         * svg/SVGFECompositeElement.cpp:
3789         (WebCore::SVGFECompositeElement::parseAttribute):
3790         * svg/SVGFECompositeElement.h:
3791         (SVGFECompositeElement):
3792         * svg/SVGFEConvolveMatrixElement.cpp:
3793         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3794         * svg/SVGFEConvolveMatrixElement.h:
3795         (SVGFEConvolveMatrixElement):
3796         * svg/SVGFEDiffuseLightingElement.cpp:
3797         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3798         * svg/SVGFEDiffuseLightingElement.h:
3799         (SVGFEDiffuseLightingElement):
3800         * svg/SVGFEDisplacementMapElement.cpp:
3801         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3802         * svg/SVGFEDisplacementMapElement.h:
3803         (SVGFEDisplacementMapElement):
3804         * svg/SVGFEDropShadowElement.cpp:
3805         (WebCore::SVGFEDropShadowElement::parseAttribute):
3806         * svg/SVGFEDropShadowElement.h:
3807         (SVGFEDropShadowElement):
3808         * svg/SVGFEGaussianBlurElement.cpp:
3809         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3810         * svg/SVGFEGaussianBlurElement.h:
3811         (SVGFEGaussianBlurElement):
3812         * svg/SVGFEImageElement.cpp:
3813         (WebCore::SVGFEImageElement::parseAttribute):
3814         * svg/SVGFEImageElement.h:
3815         (SVGFEImageElement):
3816         * svg/SVGFELightElement.cpp:
3817         (WebCore::SVGFELightElement::parseAttribute):
3818         * svg/SVGFELightElement.h:
3819         (SVGFELightElement):
3820         * svg/SVGFEMergeNodeElement.cpp:
3821         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3822         * svg/SVGFEMergeNodeElement.h:
3823         (SVGFEMergeNodeElement):
3824         * svg/SVGFEMorphologyElement.cpp:
3825         (WebCore::SVGFEMorphologyElement::parseAttribute):
3826         * svg/SVGFEMorphologyElement.h:
3827         (SVGFEMorphologyElement):
3828         * svg/SVGFEOffsetElement.cpp:
3829         (WebCore::SVGFEOffsetElement::parseAttribute):
3830         * svg/SVGFEOffsetElement.h:
3831         (SVGFEOffsetElement):
3832         * svg/SVGFESpecularLightingElement.cpp:
3833         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3834         * svg/SVGFESpecularLightingElement.h:
3835         (SVGFESpecularLightingElement):
3836         * svg/SVGFETileElement.cpp:
3837         (WebCore::SVGFETileElement::parseAttribute):
3838         * svg/SVGFETileElement.h:
3839         (SVGFETileElement):
3840         * svg/SVGFETurbulenceElement.cpp:
3841         (WebCore::SVGFETurbulenceElement::parseAttribute):
3842         * svg/SVGFETurbulenceElement.h:
3843         (SVGFETurbulenceElement):
3844         * svg/SVGFilterElement.cpp:
3845         (WebCore::SVGFilterElement::parseAttribute):
3846         * svg/SVGFilterElement.h:
3847         (SVGFilterElement):
3848         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3849         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3850         * svg/SVGFilterPrimitiveStandardAttributes.h:
3851         (SVGFilterPrimitiveStandardAttributes):
3852         * svg/SVGFitToViewBox.h:
3853         (WebCore::SVGFitToViewBox::parseAttribute):
3854         * svg/SVGFontFaceElement.cpp:
3855         (WebCore::SVGFontFaceElement::parseAttribute):
3856         * svg/SVGFontFaceElement.h:
3857         (SVGFontFaceElement):
3858         * svg/SVGFontFaceUriElement.cpp:
3859         (WebCore::SVGFontFaceUriElement::parseAttribute):
3860         * svg/SVGFontFaceUriElement.h:
3861         (SVGFontFaceUriElement):
3862         * svg/SVGForeignObjectElement.cpp:
3863         (WebCore::SVGForeignObjectElement::parseAttribute):
3864         * svg/SVGForeignObjectElement.h:
3865         (SVGForeignObjectElement):
3866         * svg/SVGGElement.cpp:
3867         (WebCore::SVGGElement::parseAttribute):
3868         * svg/SVGGElement.h:
3869         (SVGGElement):
3870         * svg/SVGGlyphElement.cpp:
3871         (WebCore::SVGGlyphElement::parseAttribute):
3872         * svg/SVGGlyphElement.h:
3873         (SVGGlyphElement):
3874         * svg/SVGGlyphRefElement.cpp:
3875         (WebCore::SVGGlyphRefElement::parseAttribute):
3876         * svg/SVGGlyphRefElement.h:
3877         * svg/SVGGradientElement.cpp:
3878         (WebCore::SVGGradientElement::parseAttribute):
3879         * svg/SVGGradientElement.h:
3880         * svg/SVGImageElement.cpp:
3881         (WebCore::SVGImageElement::parseAttribute):
3882         * svg/SVGImageElement.h:
3883         (SVGImageElement):
3884         * svg/SVGLangSpace.cpp:
3885         (WebCore::SVGLangSpace::parseAttribute):
3886         * svg/SVGLangSpace.h:
3887         (SVGLangSpace):
3888         * svg/SVGLineElement.cpp:
3889         (WebCore::SVGLineElement::parseAttribute):
3890         * svg/SVGLineElement.h:
3891         (SVGLineElement):
3892         * svg/SVGLinearGradientElement.cpp:
3893         (WebCore::SVGLinearGradientElement::parseAttribute):
3894         * svg/SVGLinearGradientElement.h:
3895         (SVGLinearGradientElement):
3896         * svg/SVGMPathElement.cpp:
3897         (WebCore::SVGMPathElement::parseAttribute):
3898         * svg/SVGMPathElement.h:
3899         (SVGMPathElement):
3900         * svg/SVGMarkerElement.cpp:
3901         (WebCore::SVGMarkerElement::parseAttribute):
3902         * svg/SVGMarkerElement.h:
3903         (SVGMarkerElement):
3904         * svg/SVGMaskElement.cpp:
3905         (WebCore::SVGMaskElement::parseAttribute):
3906         * svg/SVGMaskElement.h:
3907         (SVGMaskElement):
3908         * svg/SVGPathElement.cpp:
3909         (WebCore::SVGPathElement::parseAttribute):
3910         * svg/SVGPathElement.h:
3911         (SVGPathElement):
3912         * svg/SVGPatternElement.cpp:
3913         (WebCore::SVGPatternElement::parseAttribute):
3914         * svg/SVGPatternElement.h:
3915         (SVGPatternElement):
3916         * svg/SVGPolyElement.cpp:
3917         (WebCore::SVGPolyElement::parseAttribute):
3918         * svg/SVGPolyElement.h:
3919         (SVGPolyElement):
3920         * svg/SVGRadialGradientElement.cpp:
3921         (WebCore::SVGRadialGradientElement::parseAttribute):
3922         * svg/SVGRadialGradientElement.h:
3923         (SVGRadialGradientElement):
3924         * svg/SVGRectElement.cpp:
3925         (WebCore::SVGRectElement::parseAttribute):
3926         * svg/SVGRectElement.h:
3927         (SVGRectElement):
3928         * svg/SVGSVGElement.cpp:
3929         (WebCore::SVGSVGElement::parseAttribute):
3930         * svg/SVGSVGElement.h:
3931         (SVGSVGElement):
3932         * svg/SVGScriptElement.cpp:
3933         (WebCore::SVGScriptElement::parseAttribute):
3934         * svg/SVGScriptElement.h:
3935         (SVGScriptElement):
3936         * svg/SVGStopElement.cpp:
3937         (WebCore::SVGStopElement::parseAttribute):
3938         * svg/SVGStopElement.h:
3939         (SVGStopElement):
3940         * svg/SVGStyleElement.cpp:
3941         (WebCore::SVGStyleElement::parseAttribute):
3942         * svg/SVGStyleElement.h:
3943         (SVGStyleElement):
3944         * svg/SVGStyledElement.cpp:
3945         (WebCore::SVGStyledElement::parseAttribute):
3946         * svg/SVGStyledElement.h:
3947         (SVGStyledElement):
3948         * svg/SVGStyledTransformableElement.cpp:
3949         (WebCore::SVGStyledTransformableElement::parseAttribute):
3950         * svg/SVGStyledTransformableElement.h:
3951         (SVGStyledTransformableElement):
3952         * svg/SVGSymbolElement.cpp:
3953         (WebCore::SVGSymbolElement::parseAttribute):
3954         * svg/SVGSymbolElement.h:
3955         (SVGSymbolElement):
3956         * svg/SVGTRefElement.cpp:
3957         (WebCore::SVGTRefElement::parseAttribute):
3958         * svg/SVGTRefElement.h:
3959         (SVGTRefElement):
3960         * svg/SVGTests.cpp:
3961         (WebCore::SVGTests::parseAttribute):
3962         * svg/SVGTests.h:
3963         (SVGTests):
3964         * svg/SVGTextContentElement.cpp:
3965         (WebCore::SVGTextContentElement::parseAttribute):
3966         * svg/SVGTextContentElement.h:
3967         (SVGTextContentElement):
3968         * svg/SVGTextElement.cpp:
3969         (WebCore::SVGTextElement::parseAttribute):
3970         * svg/SVGTextElement.h:
3971         (SVGTextElement):
3972         * svg/SVGTextPathElement.cpp:
3973         (WebCore::SVGTextPathElement::parseAttribute):
3974         * svg/SVGTextPathElement.h:
3975         * svg/SVGTextPositioningElement.cpp:
3976         (WebCore::SVGTextPositioningElement::parseAttribute):
3977         * svg/SVGTextPositioningElement.h:
3978         (SVGTextPositioningElement):
3979         * svg/SVGURIReference.cpp:
3980         (WebCore::SVGURIReference::parseAttribute):
3981         * svg/SVGURIReference.h:
3982         (SVGURIReference):
3983         * svg/SVGUseElement.cpp:
3984         (WebCore::SVGUseElement::parseAttribute):
3985         * svg/SVGUseElement.h:
3986         (SVGUseElement):
3987         * svg/SVGViewElement.cpp:
3988         (WebCore::SVGViewElement::parseAttribute):
3989         * svg/SVGViewElement.h:
3990         (SVGViewElement):
3991         * svg/SVGZoomAndPan.h:
3992         (WebCore::SVGZoomAndPan::parseAttribute):
3993         * svg/animation/SVGSMILElement.cpp:
3994         (WebCore::SVGSMILElement::parseAttribute):
3995         * svg/animation/SVGSMILElement.h:
3996         (SVGSMILElement):
3997
3998 2012-11-18  Andreas Kling  <akling@apple.com>
3999
4000         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
4001         <http://webkit.org/b/102596>
4002
4003         Reviewed by Antti Koivisto.
4004
4005         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
4006         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
4007
4008         * css/StyleResolver.cpp:
4009         (WebCore::haveIdenticalStyleAffectingAttributes):
4010
4011 2012-11-17  Jon Lee  <jonlee@apple.com>
4012
4013         Simulated mouse events should return an accurate offset
4014         https://bugs.webkit.org/show_bug.cgi?id=102606
4015         <rdar://problem/12725627>
4016
4017         Reviewed by Brady Eidson.
4018
4019         A check to see if the event is simulated prior to calculating the offset has existed for a
4020         long time (since at least r14916). Back then the check was needed because the offset was
4021         incrementally adjusted when the target was assigned (through
4022         MouseRelatedEvent::receivedTarget()).
4023
4024         Since r82225, we started calculating the offset only when needed, and calculating the offset
4025         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
4026         the isSimulated check is irrelevant, and we should remove it.
4027
4028         Tests are not possible because all uses of simulated mouse events provide no underlying
4029         event, so the offset is never recalculated.
4030
4031         * dom/MouseRelatedEvent.cpp:
4032         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
4033
4034 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4035
4036         Don't say there are dirty overlay scrollbars when they are clipped out
4037         https://bugs.webkit.org/show_bug.cgi?id=102609
4038
4039         Reviewed by Brady Eidson.
4040
4041         Painting overlay scrollbars involves a second painting pass over the entire
4042         RenderLayer subtree for a compositing layer, which can be very expensive.
4043         
4044         Avoid this when possible by detecting when overflow controls are not in
4045         the damage rect.
4046
4047         * rendering/RenderLayer.cpp:
4048         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
4049         for the horizontal scrollbar.
4050         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
4051         for the vertical scrollbar.
4052         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
4053         and rectForVerticalScrollbar().
4054         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
4055         of the present overflow controls intersect the given local rect.
4056         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
4057         doesn't intersect any of the overflow controls.
4058         * rendering/RenderLayer.h:
4059         (RenderLayer):
4060
4061 2012-11-17  Adam Barth  <abarth@webkit.org>
4062
4063         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
4064         https://bugs.webkit.org/show_bug.cgi?id=101428
4065
4066         Reviewed by Geoffrey Garen.
4067
4068         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
4069         call during garbage collection. This patch teaches subclasses of Node
4070         to have their JSMumbleOwner objects inherit from JSNodeOwner.
4071
4072         The immediate benefit of this patch is that we correctly avoid
4073         collecting wrappers for HTMLAudioElements when they are reachable from
4074         the DOM.
4075
4076         * bindings/scripts/CodeGeneratorJS.pm:
4077         (GenerateHeader):
4078         (GenerateImplementation):
4079
4080 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
4081
4082         Expose JSObject::removeDirect and PrivateName to WebCore
4083         https://bugs.webkit.org/show_bug.cgi?id=102546
4084
4085         Reviewed by Geoffrey Garen.
4086
4087         Add forwarding header for PrivateName, so JSDependentRetained works.
4088
4089         No new tests, just adding headers.
4090
4091         * ForwardingHeaders/runtime/PrivateName.h: Added.
4092
4093 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4094
4095         Reduce the crazy number of parameters to RenderLayer clip-rect functions
4096         https://bugs.webkit.org/show_bug.cgi?id=102604
4097
4098         Reviewed by Dan Bernstein.
4099
4100         Many of the RenderLayer member functions related to clip rect computation
4101         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4102         that we pass to these functions
4103         
4104         No functional changes.
4105
4106         * rendering/RenderLayer.cpp:
4107         (WebCore::RenderLayer::paintLayer):
4108         (WebCore::RenderLayer::paintLayerContents):
4109         (WebCore::RenderLayer::hitTestLayer):
4110         (WebCore::RenderLayer::updateClipRects):
4111         (WebCore::RenderLayer::calculateClipRects):
4112         (WebCore::RenderLayer::parentClipRects):
4113         (WebCore::RenderLayer::backgroundClipRect):
4114         (WebCore::RenderLayer::calculateRects):
4115         (WebCore::RenderLayer::childrenClipRect):
4116         (WebCore::RenderLayer::selfClipRect):
4117         (WebCore::RenderLayer::localClipRect):
4118         * rendering/RenderLayer.h:
4119         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4120         (ClipRectsContext):
4121         (RenderLayer):
4122         (WebCore::RenderLayer::clipRects):
4123         * rendering/RenderLayerBacking.cpp:
4124         (WebCore::RenderLayerBacking::updateCompositedBounds):
4125         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4126         * rendering/RenderLayerCompositor.cpp:
4127         (WebCore::RenderLayerCompositor::addToOverlapMap):
4128         (WebCore::RenderLayerCompositor::clippedByAncestor):
4129         * rendering/RenderTreeAsText.cpp:
4130         (WebCore::writeLayers):
4131
4132 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4133
4134         Simplify bounds computation for the RenderView's layer
4135         https://bugs.webkit.org/show_bug.cgi?id=102597
4136
4137         Reviewed by Anders Carlsson.
4138
4139         Computing the bounds of the main layer (that of the RenderView) used to do
4140         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4141         which is very expensive on large pages.
4142         
4143         For the RenderView we can avoid that entirely and just use the RenderView's
4144         document rect. Since page scaling happens as a transform on this layer,
4145         we want the unscaled document rect.
4146
4147         * rendering/RenderLayer.cpp:
4148         (WebCore::RenderLayer::calculateLayerBounds):
4149
4150 2012-11-17  Eric Seidel  <eric@webkit.org>
4151
4152         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4153         https://bugs.webkit.org/show_bug.cgi?id=102601
4154
4155         Reviewed by Adam Barth.
4156
4157         From my investigations all of these classes exist only to be exposed
4158         to the web (via JavaScript) and are not used internally by WebCore.
4159         I beleive all of them always have wrappers.
4160         These were found using this code:
4161         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4162
4163         Geolocation -- navigator.geolocation
4164         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4165         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4166         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4167         ValidityState -- formControl.validity
4168         CanvasRenderingContext -- canvas.getContext()
4169         DOMApplicationCache -- window.appcache
4170         Screen -- window.screen
4171         DOMMimeTypeArray -- navigator.mimetypes
4172         DOMPlugin -- navigator.plugins[0]
4173         DOMPluginArray -- navigator.plugins
4174
4175         * Modules/geolocation/Geolocation.h:
4176         * css/WebKitCSSMatrix.h:
4177         * dom/DOMStringMap.h:
4178         * dom/NamedNodeMap.h:
4179         * dom/NodeIterator.h:
4180         * dom/TreeWalker.h:
4181         * fileapi/Blob.h:
4182         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4183         (FileList):
4184         (WebCore::FileList::create):
4185         (WebCore::FileList::length):
4186         (WebCore::FileList::isEmpty):
4187         (WebCore::FileList::clear):
4188         (WebCore::FileList::append):
4189         * html/ValidityState.h:
4190         * html/canvas/CanvasRenderingContext.h:
4191         * loader/appcache/DOMApplicationCache.h:
4192         * page/Screen.h:
4193         * platform/graphics/wince/MediaPlayerProxy.cpp:
4194         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4195         * plugins/DOMMimeTypeArray.h:
4196         * plugins/DOMPlugin.h:
4197         * plugins/DOMPluginArray.h:
4198
4199 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4200
4201         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4202         https://bugs.webkit.org/show_bug.cgi?id=101801
4203
4204         Reviewed by Noam Rosenthal.
4205
4206         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4207         Also added a new API on TextureMapper that receives a notification when the shader
4208         is no longer needed.
4209
4210         No new tests, the code is tested by existing tests.
4211
4212         * platform/graphics/filters/CustomFilterOperation.h:
4213         (WebCore::CustomFilterOperation::setProgram):
4214         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4215         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4216         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4217         (WebCore):
4218         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4219         (CustomFilterValidatedProgram):
4220         * platform/graphics/texmap/TextureMapper.h:
4221         (WebCore):
4222         (TextureMapper):
4223         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4224         Function to be called by the platform code, when the shader is no longer
4225         needed. This implementation is empty and overridden in TextureMapperGL.
4226         * platform/graphics/texmap/TextureMapperGL.cpp:
4227         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4228         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4229         is no longer needed.
4230         (WebCore):
4231         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4232         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4233         * platform/graphics/texmap/TextureMapperGL.h:
4234         (WebCore):
4235         (TextureMapperGL):
4236
4237 2012-11-17  Brady Eidson  <beidson@apple.com>
4238
4239         Add an integer identifier field to AuthenticationChallengeBase.
4240         https://bugs.webkit.org/show_bug.cgi?id=102593
4241
4242         Reviewed by Darin Adler.
4243
4244         This is to support linking two different challenges that might not compare as equal but that 
4245         represent the same logical authentication challenge.
4246
4247         One example is in an IPC environment where the platform challenge can only exist in one process.
4248
4249         No new tests (Platform support, no effect in tested configs).
4250
4251         * WebCore.exp.in:
4252
4253         * platform/network/AuthenticationChallengeBase.cpp:
4254         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4255         * platform/network/AuthenticationChallengeBase.h:
4256         (WebCore::AuthenticationChallengeBase::identifier):
4257
4258         * platform/network/cf/AuthenticationChallenge.h:
4259         * platform/network/mac/AuthenticationMac.mm:
4260         (WebCore::generateUniqueIdentifier):
4261         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4262           constructing a challenge from an NSURLAuthenticationChallenge.
4263
4264         * platform/network/cf/AuthenticationCF.cpp:
4265         (WebCore::generateUniqueIdentifier):
4266         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4267           constructing a challenge from a CFURLAuthChallengeRef.
4268
4269         Implement the new constructor form for ports relevant to WebKit2:
4270         * platform/network/qt/AuthenticationChallenge.h:
4271         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4272         * platform/network/soup/AuthenticationChallenge.h:
4273         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4274         * platform/network/win/AuthenticationChallenge.h:
4275         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4276
4277 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4278
4279         Dump the tile cache extent in layout tests
4280         https://bugs.webkit.org/show_bug.cgi?id=102600
4281
4282         Reviewed by Anders Carlsson.
4283
4284         When dumping tiled layer stats in layout tests, also dump the extent
4285         of the tile grid. This will allow us to detect issues related
4286         to zooming, which is not possible with the existing tile coverage rect,
4287         which is dumped in layer (not tile) coordinates.
4288
4289         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4290         * platform/graphics/ca/GraphicsLayerCA.cpp:
4291         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4292         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4293         * platform/graphics/ca/mac/TileCache.mm:
4294         (WebCore::TileCache::getTileIndexRangeForRect):
4295         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4296         the grid as top,left width,height.
4297
4298 2012-11-17  Andreas Kling  <akling@apple.com>
4299
4300         Avoid full style recalc when 'style' attribute changes.
4301         <http://webkit.org/b/78718>
4302
4303         Reviewed by Anders Carlsson.
4304
4305         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4306         to reduce the amount of work done in recalcStyle().
4307
4308         * dom/StyledElement.cpp:
4309         (WebCore::StyledElement::styleAttributeChanged):
4310
4311 2012-11-17  Li Yin  <li.yin@intel.com>
4312
4313         Remove coneGain and distanceGain attributes from PannerNode.idl
4314         https://bugs.webkit.org/show_bug.cgi?id=102343
4315
4316         Reviewed by Chris Rogers.
4317
4318         Removing .coneGain and .distanceGain as publicly accessible values,
4319         since normally they only need to be calculated internally.
4320
4321         No changes to tests, since these attributes were not tested and are being removed.
4322
4323         * Modules/webaudio/PannerNode.idl:
4324
4325 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4326
4327         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4328         https://bugs.webkit.org/show_bug.cgi?id=102530
4329
4330         Reviewed by Noam Rosenthal.
4331
4332         GraphicsLayer::addAnimation is called no only when a new animation is created
4333         but also when resuming a paused animation. If this is a resumed animation we
4334         should remove the obsolate GraphicsLayerAnimation object.
4335
4336         Tested by animations tests.
4337
4338         * platform/graphics/GraphicsLayerAnimation.cpp:
4339         (WebCore::GraphicsLayerAnimations::add):
4340
4341 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4342
4343         [Soup] CredentialStorage should only be used for HTTP-family requests
4344         https://bugs.webkit.org/show_bug.cgi?id=102582
4345
4346         Reviewed by Gustavo Noronha Silva.
4347
4348         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4349         only expects to handle requests in the HTTP family.
4350
4351         No new tests. This is covered by existing tests.
4352
4353         * platform/network/ResourceHandle.h:
4354         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4355         helper returns false when firstRequest() is a non-HTTP family request.
4356         * platform/network/soup/ResourceHandleSoup.cpp:
4357         (WebCore::applyAuthenticationToRequest): Use the new helper.
4358         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4359         (WebCore::ResourceHandle::start): Ditto.
4360         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4361         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4362         (WebCore::ResourceHandle::receivedCredential): Ditto.
4363
4364 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4365
4366         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4367
4368         * rendering/RenderLayer.cpp:
4369         (WebCore::RenderLayer::paintOverflowControls):
4370
4371 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4372
4373         Improve the performance of rect transform
4374         https://bugs.webkit.org/show_bug.cgi?id=101828
4375
4376         Reviewed by Simon Fraser.
4377
4378         Mapping a rect and a quad by a transform is a common operation because
4379         we use it to recompute the repaint rect, overflow rect, etc.
4380
4381         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4382         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4383         and perform many comparison.
4384         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4385         too many.
4386
4387         This patch just cut the intermediary calls.
4388
4389         On ARM, putting the operation together also has the advantage of loading the matrix
4390         only once in registers and reusing it for every point.
4391
4392         * platform/graphics/transforms/TransformationMatrix.cpp:
4393         (WebCore::TransformationMatrix::mapPoint):
4394         (WebCore::TransformationMatrix::mapRect):
4395         * platform/graphics/transforms/TransformationMatrix.h:
4396         (WebCore):
4397         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4398         point project without doing isIdentityOrTranslation().
4399
4400 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4401
4402         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4403         https://bugs.webkit.org/show_bug.cgi?id=102581
4404
4405         Reviewed by Dan Bernstein.
4406
4407         isBlockFlow() is a virtual function call, and shows up in profiles of
4408         Facebook pages as called from RenderBox::computeRectForRepaint().
4409         
4410         It's faster to do the hasColumns() bit-check first. Also replace
4411         a call to layer() with the hasLayer() bit-check.        
4412
4413         * rendering/RenderBox.cpp:
4414         (WebCore::RenderBox::computeRectForRepaint):
4415
4416 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4417
4418         Unreviewed, rolling out r134817.
4419         http://trac.webkit.org/changeset/134817
4420         https://bugs.webkit.org/show_bug.cgi?id=102576
4421
4422         Broke iframes and causing tons of crashes on ClusterFuzz
4423         (Requested by inferno-sec on #webkit).
4424
4425         * dom/ContainerNode.cpp:
4426         (WebCore::willRemoveChildren):
4427         * dom/ContainerNodeAlgorithms.cpp:
4428         (WebCore::ChildFrameDisconnector::collectDescendant):
4429         * dom/ContainerNodeAlgorithms.h:
4430         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4431         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4432         (ChildFrameDisconnector):
4433         (WebCore::ChildFrameDisconnector::collectDescendant):
4434         (WebCore::ChildFrameDisconnector::disconnect):
4435         * dom/Node.cpp:
4436         * dom/Node.h:
4437         (Node):
4438         * dom/NodeRareData.h:
4439         (WebCore::NodeRareData::NodeRareData):
4440         (NodeRareData):
4441         * html/HTMLFrameOwnerElement.cpp:
4442         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4443         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4444
4445 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4446
4447         Fix overlay scrollbar painting in compositing layers
4448         https://bugs.webkit.org/show_bug.cgi?id=102442
4449
4450         Reviewed by Beth Dakin.
4451
4452         There were two issues with overlay scrollbar painting in
4453         compositing layers.
4454         
4455         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4456         on the RenderView's layer, even when encountering an overlay scrollbar
4457         in some descendant compositing layer. This meant that we'd never
4458         run the paintOverlayScrollbars() code for those child compositing
4459         layers, so sometimes scrollbars were missing there.
4460         
4461         Even after fixing that, we would fail to render scrollbars that
4462         were not in the composited RenderLayer itself. This happened because
4463         we called into RenderLayer::paintOverlayScrollbars(), which called
4464         paintLayer() with flags that only said to paint the overlay scrollbars
4465         but not any descendants, so this paint path would not walk child
4466         RenderLayers.
4467         
4468         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4469         ScrollView which is no longer used.
4470
4471         * platform/ScrollView.cpp:
4472         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4473         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4474         * platform/ScrollView.h:
4475         * rendering/RenderLayer.cpp:
4476         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4477         on the compositing ancestor or the root.
4478         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4479         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4480         scrollbars, no need to say we have transparency, and no need to use 
4481         temporary clip rects.
4482         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4483         check here was only needed because the compositing entrypoint to painting
4484         overlay scrollbars went via paintLayer(), which isn't normally used as
4485         a composited painting entry point. Now that we no longer call that, we
4486         don't need this special check.
4487         * rendering/RenderLayerBacking.cpp:
4488         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4489         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4490         the latter does not traverse sublayers.
4491
4492 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4493
4494         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4495         https://bugs.webkit.org/show_bug.cgi?id=102547
4496
4497         Reviewed by Tony Chang.
4498
4499         Code did not account for the not-found case in "versionchange" transactions, where all
4500         object stores are implicitly in scope.
4501
4502         Test: storage/indexeddb/object-lookups-in-versionchange.html
4503
4504         * Modules/indexeddb/IDBTransaction.cpp:
4505         (WebCore::IDBTransaction::objectStore):
4506
4507 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4508
4509         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4510         https://bugs.webkit.org/show_bug.cgi?id=101874
4511
4512         Reviewed by Dave Hyatt.
4513
4514         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4515         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4516         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4517
4518         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4519         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4520         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4521         now that the RenderGeometryMap can do a better job.
4522         
4523         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4524         the geometry map.
4525         
4526         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4527         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4528         
4529         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4530         
4531         * page/FrameView.cpp:
4532         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4533         to updateLayerPositions(). For partial layouts, we have to push layers
4534         between the root and the enclosing layer of the layout subtree.
4535         The geometry map used for repainting does not use SnapOffsetForTransforms,
4536         so initialize it explicitly with just the UseTransforms flag.
4537         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4538         to pass along to updateLayerPositionsAfterScroll().
4539         * rendering/RenderBox.cpp:
4540         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4541         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4542         repaintContainer coordinates.
4543         * rendering/RenderBox.h:
4544         * rendering/RenderGeometryMap.cpp:
4545         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4546         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4547         pertinent flag is the confusingly named SnapOffsetForTransforms.
4548         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4549         a null container.
4550         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4551         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4552         asserting that we found it. Add point- and rect-based mapping methods
4553         akin to the old absoluteRect/absolutePoint.
4554         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4555         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4556         layers, ensure that the RenderView is pushed as the first step.
4557         * rendering/RenderGeometryMap.h:
4558         (RenderGeometryMap):
4559         * rendering/RenderLayer.cpp:
4560         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4561         that makes the geometry map.
4562         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4563         that makes the geometry map.
4564         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4565         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4566         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4567         it to computeRepaintRects().
4568         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4569         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4570         geometry map, and pass it to computeRepaintRects().
4571         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4572         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4573         * rendering/RenderLayer.h:
4574         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4575         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4576         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4577         and actually harmful.
4578         * rendering/RenderLayerCompositor.cpp:
4579         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4580         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4581         it explicitly with just the UseTransforms flag.
4582         * rendering/RenderObject.h:
4583         (WebCore::RenderObject::outlineBoundsForRepaint):
4584         * rendering/svg/RenderSVGModelObject.cpp:
4585         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4586         * rendering/svg/RenderSVGModelObject.h:
4587         (RenderSVGModelObject):
4588
4589 2012-11-16  Alec Flett  <alecflett@chromium.org>
4590
4591         Add tests for explicit serialization values
4592         https://bugs.webkit.org/show_bug.cgi?id=96818
4593
4594         Reviewed by Adam Barth.
4595
4596         Expose direct access to the serialization/deserialization mechanisms
4597         of SerializedScriptValue to DumpRenderTree.
4598
4599         * testing/Internals.cpp:
4600         (WebCore::Internals::serializeObject):
4601         (WebCore):
4602         (WebCore::Internals::deserializeBuffer):
4603         * testing/Internals.h:
4604         (WebCore):
4605         * testing/Internals.idl:
4606
4607 2012-11-16  Andreas Kling  <akling@apple.com>
4608
4609         Exploit shared attribute data to avoid parsing identical "style" attributes.
4610         <http://webkit.org/b/101163>
4611
4612         Reviewed by Antti Koivisto.
4613
4614         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4615         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4616         since the state is no longer per-Element.
4617
4618         * css/StyleResolver.cpp:
4619         (WebCore::isCacheableInMatchedPropertiesCache):
4620
4621             Disable the matched properties cache for styles with non-standard writing-mode.
4622             This is necessary because some CSS properties have different meaning depending on context -
4623             properties handled by CSSProperty::resolveDirectionAwareProperty().
4624
4625             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4626             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4627             writing-modes in the matched properties cache.
4628
4629         * dom/Node.h:
4630         * dom/ElementAttributeData.cpp:
4631         (WebCore::ElementAttributeData::ElementAttributeData):
4632         * dom/ElementAttributeData.h:
4633         (WebCore::ElementAttributeData::ElementAttributeData):
4634         (ElementAttributeData):
4635         * dom/Element.h:
4636         (WebCore::Element::updateInvalidAttributes):
4637         * dom/Element.cpp:
4638         (WebCore::Element::getAttribute):
4639         (WebCore::Element::removeAttribute):
4640         * dom/StyledElement.h:
4641         (WebCore::StyledElement::invalidateStyleAttribute):
4642         * dom/StyledElement.cpp:
4643         (WebCore::StyledElement::updateStyleAttribute):
4644
4645             Move "style attribute dirty" flag to ElementAttributeData.
4646
4647         (WebCore::Element::cloneAttributesFromElement):
4648
4649             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4650             automagically since cloning nodes just refs the original attribute data.
4651
4652         * dom/StyledElement.cpp:
4653         (WebCore::StyledElement::updateStyleAttribute):
4654         (WebCore::StyledElement::setInlineStyleFromString):
4655         (WebCore::StyledElement::styleAttributeChanged):
4656         (WebCore::StyledElement::inlineStyleChanged):
4657
4658             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4659             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4660             to make the code more understandable.
4661
4662 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4663
4664         Don't update layer positions on scrolling if we're in the middle of layout
4665         https://bugs.webkit.org/show_bug.cgi?id=102556
4666
4667         Reviewed by Dan Bernstein.
4668
4669         RenderLayer::scrollTo() can be called in the middle of layout. When
4670         that happens we should not waste time updating layer positions,
4671         compositing layers, or widget positions, because we'll do those at the
4672         end of layout anyway.
4673         
4674         This prevents us from having inconsistent RenderLayer state, which
4675         hinders future optimizations in this area.
4676
4677         * rendering/RenderLayer.cpp:
4678         (WebCore::RenderLayer::scrollTo):
4679
4680 2012-11-16  Tony Chang  <tony@chromium.org>
4681
4682         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4683         https://bugs.webkit.org/show_bug.cgi?id=102554
4684
4685         Reviewed by Andreas Kling.
4686
4687         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4688         we're going to revist this feature once additional vendor support is
4689         achieved.
4690
4691         No new tests, just removing an unused define.
4692
4693         * Configurations/FeatureDefines.xcconfig:
4694         * GNUmakefile.features.am:
4695
4696 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4697
4698         [Chromium] Remove cookie-related functions from PlatformSupport
4699         https://bugs.webkit.org/show_bug.cgi?id=99340
4700
4701         Reviewed by Adam Barth.
4702
4703         Move cookie-related functions out of PlatformSupport and implement
4704         new PlatformCookieJar interface via NetworkContext.
4705
4706         * WebCore.gyp/WebCore.gyp:
4707         * WebCore.gypi:
4708         * loader/CookieJar.cpp:
4709         * loader/chromium/CookieJarChromium.cpp: Removed.
4710         * platform/chromium/PlatformSupport.h:
4711         (WebCore):
4712         (PlatformSupport):
4713         * platform/network/NetworkingContext.h:
4714         (WebKit):
4715         (NetworkingContext):
4716         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4717         (WebCore::setCookiesFromDOM):
4718         (WebCore::cookiesForDOM):
4719         (WebCore::cookieRequestHeaderFieldValue):
4720         (WebCore::cookiesEnabled):
4721         (WebCore::getRawCookies):
4722         (WebCore::deleteCookie):
4723         (WebCore::getHostnamesWithCookies):
4724         (WebCore::deleteCookiesForHostname):
4725         (WebCore::deleteAllCookies):
4726
4727 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4728
4729         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4730         https://bugs.webkit.org/show_bug.cgi?id=70574
4731
4732         Reviewed by Geoffrey Garen.
4733
4734         For scripts that use CORS (via the crossorigin attribute in this case),
4735         don't sanitize the information passed to the window's onerror handler (i.e.
4736         message, url, and line number). Useful for scripts hosted on CDNs.
4737
4738         Tests: http/tests/security/script-crossorigin-onerror-information.html
4739                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4740
4741         * WebCore.exp.in:
4742         * WebCore.order:
4743
4744         * bindings/js/JSDOMBinding.cpp:
4745         (WebCore::reportException):
4746         * bindings/js/JSDOMBinding.h:
4747         (WebCore):
4748         * bindings/js/ScriptController.cpp:
4749         (WebCore::ScriptController::evaluateInWorld):
4750         * bindings/js/ScriptSourceCode.h:
4751         (WebCore::ScriptSourceCode::ScriptSourceCode):
4752         (WebCore::ScriptSourceCode::cachedScript):
4753         (ScriptSourceCode):
4754         * bindings/js/WorkerScriptController.cpp:
4755         (WebCore::WorkerScriptController::evaluate):
4756             Keep a reference to the cached script in the ScriptSourceCode, so
4757             that it can be passed around and be available when reporting the
4758             exception.
4759
4760         * dom/ScriptExecutionContext.cpp:
4761         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4762         (WebCore::ScriptExecutionContext::reportException):
4763         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4764         * dom/ScriptExecutionContext.h:
4765         (WebCore):
4766         (ScriptExecutionContext):
4767             Check if the script passes the access control checks, and if so,
4768             don't sanitize the error information.
4769
4770         * html/parser/HTMLPreloadScanner.cpp:
4771         (WebCore::PreloadTask::processAttributes):
4772         (WebCore::PreloadTask::preload):
4773         (PreloadTask):
4774         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4775             When preloading script elements, check for the crossorigin attribute
4776             and adjust the request's allowCookies value accordingly. Otherwise
4777             when the script is loaded from the cache later on, the cross origin mode
4778             (anonymous/use-credentials) will be effectively ignored.
4779
4780 2012-11-16  Jon Lee  <jonlee@apple.com>
4781
4782         Change visual look of placeholder
4783         https://bugs.webkit.org/show_bug.cgi?id=102149
4784         <rdar://problem/12695566>
4785
4786         Reviewed by Darin Adler.
4787
4788         Move the button to the lower-right corner. Move the theming into
4789         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4790         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4791
4792         * Resources/startButton.png: Added.
4793         * Resources/startButton@2x.png: Added.
4794         * Resources/startButtonPressed.png: Added.
4795         * Resources/startButtonPressed@2x.png: Added.
4796         * WebCore.xcodeproj/project.pbxproj: Add button images.
4797
4798         Maintain variables to track whether the mouse is over the button, and the rect
4799         for the button. If the user clicks in the rect, we render a pressed button.
4800         * rendering/RenderSnapshottedPlugIn.cpp:
4801         (WebCore): Add named constant for bottom and right padding of the button.
4802         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4803         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4804         (WebCore::startButtonImage): Returns button image.
4805         (WebCore::startButtonPressedImage): Returns pressed button image.
4806         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4807         lower right hand corner, but only if we are active or hovered.
4808         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4809         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4810         hovering over the plugin rect. With a mouse down event, calculate whether the
4811         mouse position is within the button rect.
4812         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4813         contents.
4814         * rendering/RenderSnapshottedPlugIn.h:
4815
4816         Remove theming function for now.
4817         * rendering/RenderTheme.h:
4818         (RenderTheme):
4819         * rendering/RenderThemeMacShared.h:
4820         * rendering/RenderThemeMacShared.mm:
4821
4822 2012-11-16  Eric Seidel  <eric@webkit.org>
4823
4824         Deploy ScriptWrappable to more always-wrapped objects
4825         https://bugs.webkit.org/show_bug.cgi?id=102539
4826
4827         Reviewed by Adam Barth.
4828
4829         Add the ScriptWrappable baseclass to:
4830         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4831         ClientRect (element.getBoundingClientRects)
4832         Event (Not all events end up wrapped, but any which live past dispatch do)
4833         NodeList (this covers Static and Dynamic node list types, like document.all)
4834         HTMLCollection (separate from NodeList, for things like table.rows)
4835         Storage (for window.storage, always wrapped)
4836         XMLHttpRequest (always wrapped, created from JS)
4837
4838         This should be a small memory savings as the inline pointer is only 4-8 bytes
4839         instead of the hashmap entry which would be 8-16.  This may also show up
4840         on benchmarks which repeatedly access these objects (like window.storage).
4841
4842         These were found by adding a couple lines of logging-code to
4843         WebCore::createWrapper when we were in the main world, but took the
4844         HashMap (instead of inline) storage path. I used sort and uniq -c
4845         to find the most-frequently wrapped objects (while surfing
4846         a few common sites) and came up with this list.  There are still a few
4847         more complicated objects (like CSSStyleDeclaration) which may benifit
4848         from inline-wrapper-access and will be covered in a later patch.
4849
4850         * css/CSSStyleDeclaration.h:
4851         * dom/ClientRect.h:
4852         * dom/Event.h:
4853         * dom/NodeList.h:
4854         * html/HTMLCollection.h:
4855         * storage/Storage.h:
4856         * xml/XMLHttpRequest.h:
4857
4858 2012-11-16  Jon Lee  <jonlee@apple.com>
4859
4860         Simulated events instances do not all have the same underlying event
4861         https://bugs.webkit.org/show_bug.cgi?id=102468
4862         <rdar://problem/12716331>
4863
4864         Reviewed by Alexey Proskuryakov.
4865
4866         The PassRefPtr with the underlying event is included as an argument for the mouse
4867         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4868         the first simulated mouse down event because it gets assigned to that event's
4869         private m_underlyingEvent variable. We therefore send NULL to the other events.
4870
4871         The fix is for this and related functions to pass the raw pointer.
4872
4873         A layout test is not possible to put together because the call sites that use simulated
4874         events with an underlying event do not send mouse events, and those that send mouse
4875         events have a NULL underlying event.
4876
4877         * dom/EventDispatcher.cpp:
4878         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4879         * dom/EventDispatcher.h:
4880         * dom/Node.cpp:
4881         (WebCore::Node::dispatchSimulatedClick): Ditto.
4882         * dom/Node.h:
4883
4884 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4885
4886         Build fix for WinCE after r134936.
4887
4888         * platform/network/win/CookieJarWin.cpp:
4889         (WebCore::cookieRequestHeaderFieldValue):
4890
4891 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4892
4893         Unreviewed, rolling out r134986.
4894         http://trac.webkit.org/changeset/134986
4895         https://bugs.webkit.org/show_bug.cgi?id=102110
4896
4897         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4898         origin.html.
4899
4900         * css/StyleResolver.cpp:
4901         (WebCore::StyleResolver::StyleResolver):
4902         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4903         (WebCore::collectCSSOMWrappers):
4904         * css/StyleResolver.h:
4905         (StyleResolver):
4906         * dom/Document.cpp:
4907         (WebCore::Document::setCompatibilityMode):
4908         * dom/DocumentStyleSheetCollection.cpp:
4909         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4910         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4911         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4912         (WebCore):
4913         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4914         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4915         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4916         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4917         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4918         * dom/DocumentStyleSheetCollection.h:
4919         (DocumentStyleSheetCollection):
4920         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4921         * page/PageGroup.cpp:
4922         (WebCore::PageGroup::addUserStyleSheetToWorld):
4923         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4924         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4925         (WebCore::PageGroup::removeAllUserContent):
4926         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4927         * page/PageGroup.h:
4928         (PageGroup):
4929
4930 2012-11-16  Michael Pruett  <michael@68k.org>
4931
4932         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4933         https://bugs.webkit.org/show_bug.cgi?id=102430
4934
4935         Reviewed by Adam Barth.
4936
4937         DOMRequestState is currently propagated to some but not all of
4938         the IndexedDB binding utility functions. In order to implement
4939         these functions for JSC, this state must be propagated to all
4940         of the utility functions.
4941
4942         Tests: storage/indexeddb/*
4943
4944         * Modules/indexeddb/IDBCursor.cpp:
4945         (WebCore::IDBCursor::update):
4946         (WebCore::IDBCursor::setValueReady):
4947         * Modules/indexeddb/IDBObjectStore.cpp:
4948         (WebCore::generateIndexKeysForValue):
4949         (WebCore::IDBObjectStore::put):
4950         (WebCore):
4951         * Modules/indexeddb/IDBRequest.cpp:
4952         (WebCore::IDBRequest::onSuccess):
4953         (WebCore::IDBRequest::dispatchEvent):
4954         * Modules/indexeddb/IDBRequest.h:
4955         (WebCore::IDBRequest::requestState):
4956         (IDBRequest):
4957         * bindings/v8/IDBBindingUtilities.cpp:
4958         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4959         (WebCore::serializeIDBValue):
4960         (WebCore::injectIDBKeyIntoScriptValue):
4961         * bindings/v8/IDBBindingUtilities.h:
4962         (WebCore):
4963
4964 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
4965
4966         Rebaselined run-bindings-tests.
4967         https://bugs.webkit.org/show_bug.cgi?id=102523
4968
4969         Reviewed by Dimitri Glazkov.
4970
4971         Expected results need to be updated after r134931
4972
4973         * bindings/scripts/test/JS/JSTestObj.cpp:
4974         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4975         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
4976         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
4977         * bindings/scripts/test/V8/V8TestObj.cpp:
4978         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
4979         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
4980         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
4981
4982 2012-11-16  Pratik Solanki  <psolanki@apple.com>
4983
4984         For single element arrays use the pointer into the CFDataRef instead of copying data
4985         https://bugs.webkit.org/show_bug.cgi?id=102306
4986         <rdar://problem/12267471>
4987
4988         Reviewed by Alexey Proskuryakov.
4989
4990         We generally copy the data received from CFNetwork into our own buffers. But if the
4991         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
4992         and access its memory directly and avoid making a copy.
4993
4994         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
4995         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
4996         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
4997         the memory in the data array.
4998
4999         No new tests because no change in functionality.
5000
5001         * loader/ResourceBuffer.cpp:
5002         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
5003         * loader/ResourceBuffer.h:
5004         * loader/cache/CachedResource.cpp:
5005         (WebCore::CachedResource::makePurgeable):
5006         * platform/SharedBuffer.cpp:
5007         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
5008         (WebCore::SharedBuffer::data):
5009         * platform/SharedBuffer.h:
5010         * platform/cf/SharedBufferCF.cpp:
5011         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
5012         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
5013         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
5014
5015 2012-11-16  Antti Koivisto  <antti@apple.com>
5016
5017         REGRESSION(r129644): User StyleSheet not applying
5018         https://bugs.webkit.org/show_bug.cgi?id=102110
5019
5020         Reviewed by Andreas Kling.
5021
5022         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
5023         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
5024         
5025         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
5026         It also generally cleans up the code around injected and user stylesheets.
5027
5028         Tests: userscripts/user-script-and-stylesheet.html
5029                userscripts/user-stylesheet-invalidate.html
5030
5031         * css/StyleResolver.cpp:
5032         (WebCore::StyleResolver::StyleResolver):
5033         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
5034         (WebCore::collectCSSOMWrappers):
5035         * css/StyleResolver.h:
5036         (StyleResolver):
5037         * dom/Document.cpp:
5038         (WebCore::Document::setCompatibilityMode):
5039         * dom/DocumentStyleSheetCollection.cpp:
5040         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
5041         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
5042         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
5043         (WebCore):
5044         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
5045         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
5046         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
5047         (WebCore::DocumentStyleSheetCollection::addUserSheet):
5048         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
5049         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
5050         * dom/DocumentStyleSheetCollection.h:
5051         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
5052         (DocumentStyleSheetCollection):
5053         * page/PageGroup.cpp:
5054         (WebCore::PageGroup::addUserStyleSheetToWorld):
5055         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
5056         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
5057         (WebCore::PageGroup::removeAllUserContent):
5058         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
5059         * page/PageGroup.h:
5060         (PageGroup):
5061
5062 2012-11-16  Andreas Kling  <akling@apple.com>
5063
5064         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
5065         <http://webkit.org/b/102536>
5066
5067         Reviewed by Antti Koivisto.
5068
5069         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
5070         relevant for sharing style between <input> elements.
5071
5072         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
5073
5074         * css/StyleResolver.cpp:
5075         (WebCore::StyleResolver::canShareStyleWithControl):
5076         (WebCore::haveIdenticalStyleAffectingAttributes):
5077
5078 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5079
5080         Unreviewed, rolling out r134867.
5081         http://trac.webkit.org/changeset/134867
5082         https://bugs.webkit.org/show_bug.cgi?id=102544
5083
5084         Broke security fuzzier test (heap-buffer-overflow) (Requested
5085         by bfulgham on #webkit).
5086
5087         * platform/audio/Biquad.cpp:
5088         (WebCore::Biquad::process):
5089
5090 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5091
5092         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
5093         https://bugs.webkit.org/show_bug.cgi?id=102382
5094
5095         Reviewed by Adam Barth.
5096
5097         Updating readyState & iceState, and adding iceGatheringState.
5098         Also safeguarding the event timer callback.
5099
5100         Patch covered by existing tests.
5101
5102         * Modules/mediastream/RTCPeerConnection.cpp:
5103         (WebCore::RTCPeerConnection::RTCPeerConnection):
5104         (WebCore::RTCPeerConnection::createOffer):
5105         (WebCore::RTCPeerConnection::createAnswer):
5106         (WebCore::RTCPeerConnection::setLocalDescription):
5107         (WebCore::RTCPeerConnection::localDescription):
5108         (WebCore::RTCPeerConnection::setRemoteDescription):
5109         (WebCore::RTCPeerConnection::remoteDescription):
5110         (WebCore::RTCPeerConnection::updateIce):
5111         (WebCore::RTCPeerConnection::addIceCandidate):
5112         (WebCore::RTCPeerConnection::readyState):
5113         (WebCore::RTCPeerConnection::iceGatheringState):
5114         (WebCore):
5115         (WebCore::RTCPeerConnection::iceState):
5116         (WebCore::RTCPeerConnection::addStream):
5117         (WebCore::RTCPeerConnection::close):
5118         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5119         (WebCore::RTCPeerConnection::stop):
5120         (WebCore::RTCPeerConnection::changeReadyState):
5121         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5122         * Modules/mediastream/RTCPeerConnection.h:
5123         (RTCPeerConnection):
5124         * Modules/mediastream/RTCPeerConnection.idl:
5125         * dom/EventNames.h:
5126         (WebCore):
5127         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5128         (RTCPeerConnectionHandlerClient):
5129         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5130         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5131         (WebCore):
5132         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5133         (RTCPeerConnectionHandlerChromium):
5134
5135 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5136
5137         Unreviewed, rolling out r134973.
5138         http://trac.webkit.org/changeset/134973
5139         https://bugs.webkit.org/show_bug.cgi?id=99340
5140
5141         Broke compile on at least Mac and Linux.
5142
5143         * WebCore.gyp/WebCore.gyp:
5144         * WebCore.gypi:
5145         * loader/CookieJar.cpp:
5146         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5147         (WebCore):
5148         (WebCore::setCookies):
5149         (WebCore::cookies):
5150         (WebCore::cookieRequestHeaderFieldValue):
5151         (WebCore::cookiesEnabled):
5152         (WebCore::getRawCookies):
5153         (WebCore::deleteCookie):
5154         (WebCore::getHostnamesWithCookies):
5155         (WebCore::deleteCookiesForHostname):
5156         (WebCore::deleteAllCookies):
5157         * platform/chromium/PlatformSupport.h:
5158         (WebCore):
5159         (PlatformSupport):
5160         * platform/network/NetworkingContext.h:
5161         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5162
5163 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5164
5165         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5166         https://bugs.webkit.org/show_bug.cgi?id=101843
5167
5168         Reviewed by Gustavo Noronha Silva.
5169
5170         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5171         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5172
5173         No new tests. This patch does not change behavior.
5174
5175         * platform/gtk/GtkAuthenticationDialog.cpp:
5176         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5177         some field initializers.
5178         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5179         makes it simpler to subclass.
5180         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5181         and password here, so that it can be shared with subclasses.
5182         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5183         subclasses.
5184
5185 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5186
5187         [Chromium] Remove cookie-related functions from PlatformSupport
5188         https://bugs.webkit.org/show_bug.cgi?id=99340
5189
5190         Reviewed by Adam Barth.
5191
5192         Move cookie-related functions out of PlatformSupport and implement
5193         new PlatformCookieJar interface via NetworkContext.
5194
5195         * WebCore.gyp/WebCore.gyp:
5196         * WebCore.gypi:
5197         * loader/CookieJar.cpp:
5198         * loader/chromium/CookieJarChromium.cpp: Removed.
5199         * platform/chromium/PlatformSupport.h:
5200         (WebCore):
5201         (PlatformSupport):
5202         * platform/network/NetworkingContext.h:
5203         (WebKit):
5204         (NetworkingContext):
5205         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5206         (WebCore::setCookiesFromDOM):
5207         (WebCore::cookiesForDOM):
5208         (WebCore::cookieRequestHeaderFieldValue):
5209         (WebCore::cookiesEnabled):
5210         (WebCore::getRawCookies):
5211         (WebCore::deleteCookie):
5212         (WebCore::getHostnamesWithCookies):
5213         (WebCore::deleteCookiesForHostname):
5214         (WebCore::deleteAllCookies):
5215
5216 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5217
5218         Fix assertion bug of build fix r134961
5219         https://bugs.webkit.org/show_bug.cgi?id=102533
5220
5221         Reviewed by Martin Robinson.
5222
5223         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5224
5225         * platform/network/soup/ResourceHandleSoup.cpp:
5226         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5227
5228 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5229
5230         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5231         https://bugs.webkit.org/show_bug.cgi?id=102386
5232
5233         Reviewed by Adam Barth.
5234
5235         Existing tests expanded to cover patch.
5236
5237         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5238         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5239         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5240         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5241         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5242         (WebCore):
5243         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5244         (WebKit):
5245         (RTCPeerConnectionHandlerChromium):
5246
5247 2012-11-16  Scott Violet  <sky@chromium.org>
5248
5249         [chromium] Copy linux theme related files to default
5250         https://bugs.webkit.org/show_bug.cgi?id=102403
5251
5252         Reviewed by Tony Chang
5253
5254         Transitional patch that copies linux WebThemeEngine to default directory.
5255
5256         No new tests, refactoring only.
5257
5258         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5259         * WebCore.gypi: Adds new files.
5260         * platform/chromium/PlatformSupport.h:
5261         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5262         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5263         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5264         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5265         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5266         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5267
5268 2012-11-16  Alec Flett  <alecflett@chromium.org>
5269
5270         IndexedDB: add missing 'explicit' and fix backing store release
5271         https://bugs.webkit.org/show_bug.cgi?id=102450
5272
5273         Reviewed by Tony Chang.
5274
5275         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5276         which resulted in objects sticking around a bit longer than
5277         expected. This makes sure the LevelDBTransaction is released
5278         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5279         is destroyed.
5280
5281         No new tests, this is just internal state that will affect
5282         some future refactoring.
5283
5284         * Modules/indexeddb/IDBBackingStore.h:
5285         (Cursor):
5286         (Transaction):
5287         (WebCore::IDBBackingStore::Transaction::reset):
5288         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5289         (WebCore::IDBTransactionBackendImpl::abort):
5290         (WebCore::IDBTransactionBackendImpl::commit):
5291
5292 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5293
5294         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5295
5296         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5297
5298 2012-11-16  Robert Flack  <flackr@chromium.org>
5299
5300         Handle gesture events on scrollbars.
5301         https://bugs.webkit.org/show_bug.cgi?id=101516
5302
5303         Reviewed by Antonio Gomes.
5304
5305         Adds a gesture event handler to scrollbars and sends gestures beginning
5306         over a scrollbar to this handler to allow touch scrolling scrollbars.
5307
5308         Test: fast/events/touch/gesture/gesture-scrollbar.html
5309
5310         * page/EventHandler.cpp:
5311         (WebCore::EventHandler::clear):
5312         (WebCore::EventHandler::handleGestureEvent):
5313         (WebCore::EventHandler::isScrollbarHandlingGestures):
5314         (WebCore):
5315         * page/EventHandler.h:
5316         (EventHandler):
5317         * platform/Scrollbar.cpp:
5318         (WebCore::Scrollbar::Scrollbar):
5319         (WebCore):
5320         (WebCore::Scrollbar::gestureEvent):
5321         (WebCore::Scrollbar::mouseMoved):
5322         (WebCore::Scrollbar::mouseUp):
5323         (WebCore::Scrollbar::mouseDown):
5324         * platform/Scrollbar.h:
5325         (WebCore):
5326         (Scrollbar):
5327         * platform/ScrollbarTheme.h:
5328         (WebCore::ScrollbarTheme::hitTest):
5329         * platform/ScrollbarThemeComposite.cpp:
5330         (WebCore::ScrollbarThemeComposite::hitTest):
5331         * platform/ScrollbarThemeComposite.h:
5332         (ScrollbarThemeComposite):
5333         * platform/qt/ScrollbarThemeQStyle.cpp:
5334         (WebCore::ScrollbarThemeQStyle::hitTest):
5335         * platform/qt/ScrollbarThemeQStyle.h:
5336         (ScrollbarThemeQStyle):
5337
5338 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5339
5340         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5341         https://bugs.webkit.org/show_bug.cgi?id=102444
5342
5343         Reviewed by Adam Barth.
5344
5345         No new tests. Have been covered by many existing layout tests.
5346
5347         * html/shadow/MediaControlsChromiumAndroid.cpp:
5348         (WebCore::MediaControls::create): Calls createControls instead of itself.
5349
5350 2012-11-16  Andreas Kling  <akling@apple.com>
5351
5352         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5353         <http://webkit.org/b/102507>
5354
5355         Reviewed by Antti Koivisto.
5356
5357         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5358         comparing the various attributes that would prevent sharing.
5359
5360         If the two elements both share the same ElementAttributeData, we can skip all those checks
5361         since they are guaranteed to have equal attributes.
5362
5363         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5364
5365         * css/StyleResolver.cpp:
5366         (WebCore::haveIdenticalStyleAffectingAttributes):
5367         (WebCore::StyleResolver::canShareStyleWithElement):
5368
5369 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5370
5371         [EFL][GTK] Build fix after r134955
5372         https://bugs.webkit.org/show_bug.cgi?id=102527
5373
5374         Reviewed by Martin Robinson.
5375
5376         Fix the EFL,GTK debug bulid fails after r134955.
5377
5378         * platform/network/soup/ResourceHandleSoup.cpp:
5379         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5380
5381 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5382
5383         Private Browsing is a per-page setting that sets a global value
5384         https://bugs.webkit.org/show_bug.cgi?id=67870
5385
5386         Reviewed by Sam Weinig.
5387
5388         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5389
5390         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5391         exports.
5392
5393         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5394
5395         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5396         no longer keeps track of a globally enabled private CFNetwork storage session.
5397
5398         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5399         don't have a NetworkingContext pointer, and have to use whatever a client expects
5400         them to do. Perhaps we should move those methods away from WebCore eventually.
5401
5402         * platform/network/NetworkingContext.h: Added storageSession().
5403
5404         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5405         sessions.
5406
5407         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5408         remember it post-creation to do things in willSendRequest. Alternatively, we could
5409         keep a reference to NetworkingContext itself.
5410
5411         * platform/network/cf/CookieJarCFNet.cpp:
5412         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5413         there is no globally current one any more. Also, we don't really expect cookie
5414         stirage to be 0 when not using NSURLConnection.
5415         (WebCore::cookiesForDOM): Ditto.
5416         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5417         (WebCore::cookiesEnabled): Ditto.
5418         (WebCore::getRawCookies): Ditto.
5419         (WebCore::deleteCookie): Ditto.
5420         (WebCore::getHostnamesWithCookies): Ditto.
5421         (WebCore::deleteCookiesForHostname): Ditto.
5422         (WebCore::deleteAllCookies): Ditto.
5423         * platform/network/cf/CookieStorageCFNet.cpp:
5424         (WebCore::currentCFHTTPCookieStorage): Use a context.
5425         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5426         this is implemented in a strategy.
5427         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5428
5429         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5430
5431         * platform/network/cf/ResourceHandleCFNet.cpp:
5432         (WebCore::willSendRequest): Use storage session from the context, not global one.
5433         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5434         function didn't really make any sense on its own.
5435         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5436         to match Mac.
5437         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5438         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5439         cookie storage accept policy.
5440         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5441         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5442         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5443         access "d".
5444         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5445         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5446         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5447
5448         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5449         This function used to apply current storage session to every request for no apparent
5450         reason.
5451
5452         * platform/network/mac/CookieJarMac.mm:
5453         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5454         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5455         (WebCore::setCookiesFromDOM): Ditto.
5456         (WebCore::cookiesEnabled): Ditto.
5457         (WebCore::getRawCookies): Ditto.
5458         (WebCore::deleteCookie): Ditto.
5459         (WebCore::getHostnamesWithCookies): Ditto.
5460         (WebCore::deleteCookiesForHostname): Ditto.
5461         (WebCore::deleteAllCookies): Ditto.
5462         * platform/network/mac/ResourceHandleMac.mm:
5463         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5464         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5465         argument, so that the function can access current session.
5466         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5467         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5468         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5469         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5470         for use in willSendRequest. 
5471         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5472
5473 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5474
5475         [Chromium] Land a proper fix for r134939.
5476
5477         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5478         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5479
5480 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5481
5482         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5483
5484 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5485
5486         [Chromium] Updated WebCore.gypi after r134939.
5487
5488         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5489
5490 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5491
5492         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5493         https://bugs.webkit.org/show_bug.cgi?id=101840
5494
5495         Reviewed by Gustavo Noronha Silva.
5496
5497         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5498         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5499         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5500         in the manner that the CFNet backend does.
5501
5502         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5503         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5504
5505         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5506         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5507         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5508         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5509         credentials to the persistent credential store.
5510         * platform/network/ResourceHandle.h:
5511         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5512         proposed credentials in the persistent credential store.
5513         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5514         an authentication succeeded.
5515         * platform/network/gtk/CredentialBackingStore.cpp:
5516         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5517         of stored credentials.
5518         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5519         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5520         * platform/network/gtk/CredentialBackingStore.h:
5521         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5522         * platform/network/soup/AuthenticationChallenge.h:
5523         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5524         can set proposed credentials from the persistent credential store.
5525         * platform/network/soup/ResourceHandleSoup.cpp:
5526         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5527         if the authentication succeeded.
5528         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5529         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5530         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5531         authenticating requests from the session store.
5532         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5533         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5534         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5535         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5536         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5537         into this asynchronous bit.
5538         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5539         first looking in the persistent credential store.
5540         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5541         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5542         for storage later (see gotHeadersCallback).
5543
5544 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5545
5546         Update DOMException name: TypeMismatchError
5547         https://bugs.webkit.org/show_bug.cgi?id=102418
5548
5549         Reviewed by Kentaro Hara.
5550
5551         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5552
5553         Updated existing tests.
5554
5555         * dom/DOMCoreException.cpp:
5556         (WebCore):
5557         * dom/ExceptionCode.h:
5558
5559 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5560
5561         Coordinated Graphics: support the "freeze animations" API
5562         https://bugs.webkit.org/show_bug.cgi?id=100703
5563
5564         Reviewed by Noam Rosenthal.
5565
5566         Typo fix after previous patch.
5567
5568         No new tests, it's just a typo that only takes effect in the browser.
5569
5570         * platform/graphics/GraphicsLayerAnimation.cpp:
5571         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5572         Initialize members.
5573
5574 2012-11-16  Dan Carney  <dcarney@google.com>
5575
5576         add 7 bit strings capabilities to the v8 binding layer
5577         https://bugs.webkit.org/show_bug.cgi?id=91850
5578
5579         Reviewed by Adam Barth.
5580
5581         This change enables the v8 binding layer to make use of webkit's
5582         8 bit string capabilities. Using 8 bit strings leads to certain
5583         benchmark performance improvemnts as can be seen in
5584         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5585
5586         No new tests.  Test coverage already extensive.
5587
5588         * bindings/v8/V8PerIsolateData.cpp:
5589         (WebCore::V8PerIsolateData::visitExternalStrings):
5590         * bindings/v8/V8StringResource.cpp:
5591         (StringTraits):
5592         (WebCore::false):
5593         (WebCore):
5594         (WebCore::true):
5595         (WebCore::v8StringToWebCoreString):
5596         * bindings/v8/V8ValueCache.cpp:
5597         (WebCore::makeExternalString):
5598         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5599         (WebCore):
5600         (WebCore::WebCoreStringResourceBase::visitStrings):
5601         * bindings/v8/V8ValueCache.h:
5602         (WebCoreStringResourceBase):
5603         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5604         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5605         (WebCore::WebCoreStringResourceBase::atomicString):
5606         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5607         (WebCoreStringResource16):
5608         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5609         (WebCore):
5610         (WebCoreStringResource8):
5611         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5612
5613 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5614
5615         Update DOMException name: InvalidAccessError
5616         https://bugs.webkit.org/show_bug.cgi?id=102400
5617
5618         Reviewed by Kentaro Hara.
5619
5620         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5621
5622         Updated existing tests.
5623
5624         * dom/DOMCoreException.cpp:
5625
5626 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5627
5628         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5629         https://bugs.webkit.org/show_bug.cgi?id=102414
5630
5631         Reviewed by Noam Rosenthal.
5632
5633         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5634         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5635         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5636         used to render any layer on the page. 
5637
5638         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5639         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5640         extended and reused in the platform compositor.
5641         
5642         No new tests, existing tests for CSS Custom Filters already cover this path.
5643
5644         * CMakeLists.txt:
5645         * GNUmakefile.am:
5646         * GNUmakefile.list.am:
5647         * Target.pri:
5648         * WebCore.pri:
5649         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5650         (WebCore):
5651         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5652         (WebCore):
5653         (CustomFilterValidatedProgram):
5654         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5655         (WebCore):
5656         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5657         (WebCore::CustomFilterValidatedProgram::platformInit):
5658         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5659         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5660         (WebCore):
5661         (TextureMapperPlatformCompiledProgramClient):
5662         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5663         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5664         (TextureMapperPlatformCompiledProgram):
5665         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5666         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5667         (WebCore::TextureMapperPlatformCompiledProgram::create):
5668         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5669         (WebCore::TextureMapperPlatformCompiledProgram::client):
5670         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5671
5672 2012-11-16  Andreas Kling  <akling@apple.com>
5673
5674         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5675         <http://webkit.org/b/102498>
5676
5677         Reviewed by Antti Koivisto.
5678
5679         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5680         the same ElementAttributeData.
5681
5682         * dom/Element.cpp:
5683         (WebCore::Element::hasEquivalentAttributes):
5684
5685 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5686
5687         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5688         https://bugs.webkit.org/show_bug.cgi?id=102360
5689
5690         QOpenGLContext::currentContext() will return null, in case there is
5691         no current context. Therefore currentContext must be null-checked
5692         before it can be reused.
5693         Making a context current on a null-surface on the other hand is
5694         perfectly possible.
5695
5696         Reviewed by Kenneth Rohde Christiansen.
5697
5698         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5699         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5700
5701 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5702
5703         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5704         https://bugs.webkit.org/show_bug.cgi?id=102488
5705
5706         Reviewed by Vsevolod Vlasov.
5707
5708         Panels are lazily loaded / instantiated.
5709         Panel constructors register keyboard shortcuts.
5710
5711         When user open shortcuts screen all panel should be loaded.
5712         Otherwise some shortcuts will be missing.
5713
5714         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5715         * inspector/front-end/inspector.js:
5716         Provided callback that loads all panels.
5717
5718 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5719
5720         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5721         https://bugs.webkit.org/show_bug.cgi?id=102348
5722
5723         Reviewed by Adam Barth.
5724
5725         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5726
5727         No tests. No change in behavior.
5728
5729         * bindings/scripts/CodeGenerator.pm:
5730         (IsSubType):
5731         * bindings/scripts/CodeGeneratorJS.pm:
5732         (GenerateImplementation):
5733         * bindings/scripts/CodeGeneratorV8.pm:
5734         (GenerateHeader):
5735         (GetInternalFields):
5736         (GenerateNormalAttrGetter):
5737         (GenerateNormalAttrSetter):
5738         (GenerateFunctionCallback):
5739         (GenerateImplementationIndexer):
5740         (GenerateToV8Converters):
5741
5742 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5743
5744         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5745         https://bugs.webkit.org/show_bug.cgi?id=99578
5746
5747         Reviewed by Martin Robinson.
5748
5749         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5750
5751         * GNUmakefile.am:
5752         * GNUmakefile.list.am:
5753         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5754         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5755         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5756         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5757         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5758         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5759         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5760         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5761         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5762         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5763         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5764         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5765         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5766         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5767         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5768         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5769         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5770         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5771         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5772         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5773         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5774         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5775         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5776         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5777         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5778         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5779         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5780         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5781         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5782         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5783         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5784         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5785         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5786         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5787         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5788         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5789         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5790         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5791         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5792         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5793         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5794         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5795         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5796         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5797         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5798         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5799         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5800         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5801         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5802         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5803         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5804         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5805         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5806         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5807         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5808         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5809         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5810         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5811         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5812         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5813
5814 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5815
5816         Changing pseudoClass (:indeterminate) should cause distribution
5817         https://bugs.webkit.org/show_bug.cgi?id=101903
5818
5819         Reviewed by Dimitri Glazkov.
5820
5821         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5822         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5823
5824         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5825         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5826
5827         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5828                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5829
5830         * html/HTMLInputElement.cpp:
5831         (WebCore::HTMLInputElement::updateType):
5832         (WebCore::HTMLInputElement::setIndeterminate):
5833         * html/HTMLProgressElement.cpp:
5834         (WebCore::HTMLProgressElement::didElementStateChange):
5835
5836 2012-11-16  Alexis Menard  <alexis@webkit.org>
5837
5838         Factorize the creation of primitive values with a pair into a function.
5839         https://bugs.webkit.org/show_bug.cgi?id=102485
5840
5841         Reviewed by Antti Koivisto.
5842
5843         The pattern is already existing in various call sites inside CSSParser
5844         and more will be added in the future (see bug 102104).
5845
5846         No new tests : It's a refactoring only, the tests should cover it.
5847
5848         * css/CSSParser.cpp:
5849         (WebCore):
5850         (WebCore::createPrimitiveValuePair):
5851         (WebCore::CSSParser::parseValue):
5852         (WebCore::CSSParser::parseFillSize):
5853         (WebCore::CSSParser::parseBorderImageRepeat):
5854         (WebCore::CSSParser::parseBorderRadius):
5855         (WebCore::CSSParser::parseCounter):
5856
5857 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5858
5859         Expand PlatformCookieJar interface to allow for other ports
5860         https://bugs.webkit.org/show_bug.cgi?id=102456
5861
5862         Reviewed by Adam Barth.
5863
5864         Add firstParty and cookieURL arguments to several functions to
5865         prepare for integrating Chromium port into new PlatformCookieJar
5866         interface.
5867
5868         * loader/CookieJar.cpp:
5869         (WebCore::cookiesEnabled):
5870         (WebCore::cookieRequestHeaderFieldValue):
5871         (WebCore::getRawCookies):
5872         * platform/network/PlatformCookieJar.h:
5873         (WebCore):
5874         * platform/network/cf/CookieJarCFNet.cpp:
5875         (WebCore::cookieRequestHeaderFieldValue):
5876         (WebCore::cookiesEnabled):
5877         (WebCore::getRawCookies):
5878         * platform/network/curl/CookieJarCurl.cpp:
5879         (WebCore::cookieRequestHeaderFieldValue):
5880         (WebCore::cookiesEnabled):
5881         (WebCore::getRawCookies):
5882         * platform/network/mac/CookieJarMac.mm:
5883         (WebCore::cookieRequestHeaderFieldValue):
5884         (WebCore::cookiesEnabled):
5885         (WebCore::getRawCookies):
5886         * platform/network/qt/CookieJarQt.cpp:
5887         (WebCore::cookieRequestHeaderFieldValue):
5888         (WebCore::cookiesEnabled):
5889         (WebCore::getRawCookies):
5890         * platform/network/soup/CookieJarSoup.cpp:
5891         (WebCore::cookieRequestHeaderFieldValue):
5892         (WebCore::cookiesEnabled):
5893         (WebCore::getRawCookies):
5894         * platform/network/win/CookieJarWin.cpp:
5895         (WebCore::cookieRequestHeaderFieldValue):
5896         (WebCore::cookiesEnabled):
5897         (WebCore::getRawCookies):
5898
5899 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5900
5901         RenderGrid should have a function to resolve grid position
5902         https://bugs.webkit.org/show_bug.cgi?id=102441
5903
5904         Reviewed by Ojan Vafai.
5905
5906         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5907         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5908         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5909         support render areas and add a proper grid model to RenderGrid.
5910
5911         No expected change in behavior.
5912
5913         * rendering/RenderGrid.h:
5914         * rendering/RenderGrid.cpp:
5915         (WebCore::RenderGrid::resolveGridPosition):
5916         Added this new function to handle the conversion. We re-use Length but should never see
5917         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5918
5919         (WebCore::RenderGrid::findChildLogicalPosition):
5920         Simplified the function now that it just use resolveGridPosition.
5921
5922 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5923
5924         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5925         https://bugs.webkit.org/show_bug.cgi?id=94463
5926
5927         Reviewed by Kentaro Hara.
5928
5929         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5930
5931         Test: ManualTests/typed-array-memory.html
5932
5933         * bindings/v8/SerializedScriptValue.cpp:
5934
5935 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5936
5937         Unreviewed, rolling out r134694.
5938         http://trac.webkit.org/changeset/134694
5939         https://bugs.webkit.org/show_bug.cgi?id=102481
5940
5941         it made API test crash on EFL port (Requested by gyuyoung on
5942         #webkit).
5943
5944         * platform/efl/RenderThemeEfl.cpp:
5945         (WebCore::fillColorsFromEdjeClass):
5946         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5947         (WebCore::RenderThemeEfl::loadTheme):
5948         (WebCore::RenderThemeEfl::RenderThemeEfl):
5949         * platform/efl/RenderThemeEfl.h:
5950         (RenderThemeEfl):
5951
5952 2012-11-16  Mike West  <mkwst@chromium.org>
5953
5954         Web Inspector: Move call stack generation out of bindings.
5955         https://bugs.webkit.org/show_bug.cgi?id=101331
5956
5957         Reviewed by Yury Semikhatsky.
5958
5959         Currently, we generate stack traces for console messages at each call
5960         site. Bug 100650 has the end goal of moving all stack trace generation
5961         inside of the Inspector in order to ensure that we never send a console
5962         message without a stack trace if it's possible to generate one. This
5963         also ensures that we never generate unused call stacks.
5964
5965         This patch is the first step in that direction, moving stack trace
5966         generation out of the Console bindings, and into either Console or
5967         InspectorConsoleAgent.
5968
5969         No visible change in behavior should result; this refactoring should
5970         continue to pass all existing inspector tests.
5971
5972         * bindings/js/JSConsoleCustom.cpp:
5973         (WebCore::JSConsole::profile):
5974         (WebCore::JSConsole::profileEnd):
5975             Adjust custom JSC Console bindings to drop call stack generation.
5976         * bindings/scripts/CodeGeneratorJS.pm:
5977         (GenerateCallWith):
5978         * bindings/scripts/CodeGeneratorV8.pm:
5979         (GenerateCallWith):
5980             Drop call stack generation from JSC and V8 bindings.
5981         * bindings/scripts/CodeGeneratorGObject.pm:
5982             Skip timeEnd explicitly in these bindings; it used to include
5983             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
5984             to be called out on its own.
5985         * bindings/v8/ScriptCallStackFactory.cpp:
5986         (WebCore::createScriptCallStackForConsole):
5987         (WebCore::createScriptCallStack):
5988         (WebCore):
5989         * bindings/v8/ScriptCallStackFactory.h:
5990         (WebCore):
5991             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
5992             ScriptCallStackFactory in order to match JCS' implementation.
5993             It simply delegates to 'createScriptCallStackForConsole', which
5994             now also accepts a 'maxStackSize' parameter.
5995         * bindings/v8/custom/V8ConsoleCustom.cpp:
5996         (WebCore::V8Console::traceCallback):
5997         (WebCore::V8Console::assertCallback):
5998         (WebCore::V8Console::profileCallback):
5999         (WebCore::V8Console::profileEndCallback):
6000             Adjust custom V8 bindings to drop call stack generation.
6001         * inspector/InspectorConsoleAgent.cpp:
6002         (WebCore::InspectorConsoleAgent::addMessageToConsole):
6003             With the eventual goal of getting rid of the call stack parameter
6004             entirely, this patch drops it from one version of
6005             'addMessageToConsole' (replacing it with ScriptState*), and creates
6006             a new version that only accepts a call stack. We should be able to
6007             migrate most (all?) external call sites over to the arguments
6008             version in future patches.
6009         (WebCore):
6010         (WebCore::InspectorConsoleAgent::count):
6011             Count takes 'ScriptState*' instead of a call stack, and generates
6012             the stack as needed.
6013         * inspector/InspectorConsoleAgent.h:
6014         (InspectorConsoleAgent):
6015         * inspector/InspectorConsoleInstrumentation.h:
6016         (WebCore::InspectorInstrumentation::addMessageToConsole):
6017         (WebCore):
6018         (WebCore::InspectorInstrumentation::consoleCount):
6019         * inspector/InspectorInstrumentation.cpp:
6020         (WebCore):
6021         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
6022         (WebCore::InspectorInstrumentation::consoleCountImpl):
6023         * inspector/InspectorInstrumentation.h:
6024         (InspectorInstrumentation):
6025             Changes the InspectorInstrumentation pipeline to match the
6026             InspectorConsoleAgent changes.
6027         * page/Console.cpp:
6028         (WebCore::Console::addMessage):
6029             We now (always) generate one frame of a stack trace in order to
6030             populate line numbers and caller URLs. If we need to print the whole
6031             trace here, we generate a full stack.
6032         (WebCore::Console::debug):
6033         (WebCore::Console::error):
6034         (WebCore::Console::info):
6035         (WebCore::Console::log):
6036         (WebCore::Console::warn):
6037         (WebCore::Console::dir):
6038         (WebCore::Console::dirxml):
6039         (WebCore::Console::clear):
6040         (WebCore::Console::trace):
6041         (WebCore::Console::assertCondition):
6042         (WebCore::Console::count):
6043         (WebCore::Console::markTimeline):
6044         (WebCore::Console::timeEnd):
6045         (WebCore::Console::timeStamp):
6046         (WebCore::Console::group):
6047         (WebCore::Console::groupCollapsed):
6048         (WebCore::Console::profile):
6049         (WebCore::Console::profileEnd):
6050             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
6051             has been moved out of 'trace' and into 'addMessage'.
6052         * page/Console.h:
6053         (Console):
6054         * page/Console.idl:
6055             Drop the call stack, add the script state.
6056         * workers/WorkerContext.cpp:
6057         (WebCore::WorkerContext::addMessageToWorkerConsole):
6058             Use the new, explicitly call stacked addMessageToConsole. We'll kill
6059             this in a future patch.
6060
6061 2012-11-16  Marja Hölttä  <marja@chromium.org>
6062
6063         Add initiator to CachedResourceRequest.
6064         https://bugs.webkit.org/show_bug.cgi?id=101935
6065
6066         Reviewed by Adam Barth.
6067
6068         Motivation: Chromium needs to know which elements request a
6069         resource (such as an image or a script) (bug 92761). In addition,
6070         for exposing resource timing information (bug 84883) we need to
6071         store the initiator, and this is the first step towards it.
6072
6073         No new tests: No visible change in behavior.
6074
6075         * CMakeLists.txt:
6076         * GNUmakefile.list.am:
6077         * Target.pri:
6078         * WebCore.gypi:
6079         * WebCore.vcproj/WebCore.vcproj:
6080         * WebCore.xcodeproj/project.pbxproj:
6081         * css/CSSCursorImageValue.cpp:
6082         (WebCore::CSSCursorImageValue::cachedImage):
6083         * css/CSSFontFaceSrcValue.cpp:
6084         (WebCore::CSSFontFaceSrcValue::cachedFont):
6085         * css/CSSImageSetValue.cpp:
6086         (WebCore::CSSImageSetValue::cachedImageSet):
6087         * css/CSSImageValue.cpp:
6088         (WebCore::CSSImageValue::cachedImage):
6089         * css/CSSImageValue.h:
6090         (WebCore):
6091         (CSSImageValue):
6092         * css/StyleResolver.cpp:
6093         (WebCore::StyleResolver::loadPendingImage):
6094         * css/StyleRuleImport.cpp:
6095         (WebCore::StyleRuleImport::requestStyleSheet):
6096         * css/WebKitCSSSVGDocumentValue.cpp:
6097         (WebCore::WebKitCSSSVGDocumentValue::load):
6098         * css/WebKitCSSShaderValue.cpp:
6099         (WebCore::WebKitCSSShaderValue::cachedShader):
6100         * dom/ScriptElement.cpp:
6101         (WebCore::ScriptElement::requestScript):
6102         * html/HTMLLinkElement.cpp:
6103         (WebCore::HTMLLinkElement::process):
6104         * html/parser/CSSPreloadScanner.cpp:
6105         (WebCore::CSSPreloadScanner::emitRule):
6106         * html/parser/CSSPreloadScanner.h:
6107         (CSSPreloadScanner):
6108         * html/parser/HTMLPreloadScanner.cpp:
6109         (WebCore::PreloadTask::preload):
6110         * loader/ImageLoader.cpp:
6111         (WebCore::ImageLoader::updateFromElement):
6112         * loader/cache/CachedResourceLoader.cpp:
6113         (WebCore::CachedResourceLoader::requestImage):
6114         (WebCore::CachedResourceLoader::requestResource):
6115         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6116         (WebCore):
6117         (WebCore::CachedResourceLoader::preload):
6118         * loader/cache/CachedResourceLoader.h:
6119         (WebCore):
6120         (CachedResourceLoader):
6121         * loader/cache/CachedResourceRequest.cpp:
6122         (WebCore::CachedResourceRequest::CachedResourceRequest):
6123         (WebCore):
6124         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6125         (WebCore::CachedResourceRequest::setInitiator):
6126         (WebCore::CachedResourceRequest::initiatorName):
6127         (WebCore::CachedResourceRequest::initiatorDocument):
6128         (WebCore::CachedResourceRequest::initiatorElement):
6129         * loader/cache/CachedResourceRequest.h:
6130         (WebCore):
6131         (WebCore::CachedResourceRequest::setOptions):
6132         (WebCore::CachedResourceRequest::defer):
6133         (WebCore::CachedResourceRequest::setDefer):
6134         (CachedResourceRequest):
6135         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6136         (WebCore):
6137         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6138         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6139         (WebCore):
6140         (CachedResourceRequestInitiators):
6141         (WebCore::cachedResourceRequestInitiators):
6142         * loader/icon/IconLoader.cpp:
6143         (WebCore::IconLoader::startLoading):
6144         * platform/ThreadGlobalData.cpp:
6145         (WebCore::ThreadGlobalData::ThreadGlobalData):
6146         * platform/ThreadGlobalData.h:
6147         (WebCore):
6148         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6149         (ThreadGlobalData):
6150         * svg/SVGFEImageElement.cpp:
6151         (WebCore::SVGFEImageElement::requestImageResource):
6152         * svg/SVGFontFaceUriElement.cpp:
6153         (WebCore::SVGFontFaceUriElement::loadFont):
6154         * svg/SVGUseElement.cpp:
6155         (WebCore::SVGUseElement::svgAttributeChanged):
6156
6157 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6158
6159         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6160         https://bugs.webkit.org/show_bug.cgi?id=102470
6161
6162         Reviewed by Vsevolod Vlasov.
6163
6164         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6165         into an exception.
6166
6167         * English.lproj/localizedStrings.js:
6168         * inspector/front-end/WatchExpressionsSidebarPane.js:
6169         (WebInspector.WatchExpressionTreeElement.prototype.update):
6170         * inspector/front-end/inspector.css:
6171
6172 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6173
6174         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6175         https://bugs.webkit.org/show_bug.cgi?id=102476
6176
6177         Unreviewed rolling out.
6178
6179         * English.lproj/localizedStrings.js:
6180         * WebCore.gypi:
6181         * WebCore.vcproj/WebCore.vcproj:
6182         * inspector/compile-front-end.py:
6183         * inspector/front-end/AdvancedSearchController.js:
6184         * inspector/front-end/CallStackSidebarPane.js:
6185         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6186         * inspector/front-end/ConsoleView.js:
6187         (WebInspector.ConsoleView.prototype._registerShortcuts):
6188         * inspector/front-end/ElementsPanel.js:
6189         (WebInspector.ElementsPanel):
6190         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6191         * inspector/front-end/ElementsPanelDescriptor.js:
6192         * inspector/front-end/GoToLineDialog.js:
6193         (WebInspector.GoToLineDialog.install):
6194         * inspector/front-end/KeyboardShortcut.js:
6195         (WebInspector.KeyboardShortcut._keyName):
6196         * inspector/front-end/Panel.js:
6197         (WebInspector.Panel.prototype.registerShortcut):
6198         (WebInspector.Panel.prototype.unregisterShortcut):
6199         (WebInspector.PanelDescriptor.prototype.panel):
6200         * inspector/front-end/ScriptsPanel.js:
6201         (WebInspector.ScriptsPanel):
6202         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6203         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6204         * inspector/front-end/ScriptsPanelDescriptor.js:
6205         * inspector/front-end/ShortcutsScreen.js:
6206         (WebInspector.ShortcutsScreen):
6207         (WebInspector.ShortcutsSection):
6208         (WebInspector.ShortcutsSection.prototype._renderKey):
6209         * inspector/front-end/StylesSidebarPane.js:
6210         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6211         * inspector/front-end/TimelinePanel.js:
6212         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6213         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6214         * inspector/front-end/WebKit.qrc:
6215         * inspector/front-end/inspector.html:
6216         * inspector/front-end/inspector.js:
6217         (WebInspector._panelDescriptors):
6218         (WebInspector._registerShortcuts):
6219
6220 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6221
6222         Web Inspector: Memory Timeline Crash
6223         https://bugs.webkit.org/show_bug.cgi?id=102390
6224
6225         Reviewed by Vsevolod Vlasov.
6226
6227         Crash seems to be caused by IPC overflow.
6228         Messages "ParsedScriptSource" are routed to
6229         ResourceScriptMapping.prototype.addScript that process them in time
6230         linear to number of already registered non-anonymous non-inline scripts.
6231
6232         Fixed this with replacing repreated filtering with "on-line" bucketing.
6233
6234         * inspector/front-end/ResourceScriptMapping.js:
6235         (WebInspector.ResourceScriptMapping):
6236         Removed duplicating initialization code.
6237         (WebInspector.ResourceScriptMapping.prototype.addScript):
6238         Added script bucketing by sourceURL/isInline parameters.
6239         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6240         Avoid filterfig.
6241         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6242         Added outgoing muatable array safeguard.
6243         (WebInspector.ResourceScriptMapping.prototype._reset):
6244         Added type information and added two new maps.
6245
6246 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6247
6248         [CoordGfx] Follow coding style on explicit constructors
6249         https://bugs.webkit.org/show_bug.cgi?id=102451
6250
6251         Reviewed by Noam Rosenthal.
6252
6253         Use the explicit keyword on single argument constructors.
6254
6255         No new tests needed.
6256
6257         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6258         (GraphicsLayerTextureMapper):
6259         * platform/graphics/texmap/TextureMapper.h:
6260         (TextureMapper):
6261         * platform/graphics/texmap/TextureMapperBackingStore.h:
6262         (WebCore::TextureMapperTile::TextureMapperTile):
6263         * platform/graphics/texmap/TextureMapperGL.cpp:
6264         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6265         (WebCore::TextureMapperGLData::TextureMapperGLData):
6266         * platform/graphics/texmap/TextureMapperGL.h:
6267         (BitmapTextureGL):
6268         * platform/graphics/texmap/TextureMapperShaderManager.h:
6269         (TextureMapperShaderManager):
6270
6271 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6272
6273         Add DeviceController base-class to remove duplication of DeviceXXXControler
6274         https://bugs.webkit.org/show_bug.cgi?id=96894
6275
6276         Reviewed by Hajime Morita.
6277
6278         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6279         And soon-to-be-added DeviceMotionController and ProximityController.
6280
6281         Covered by existing tests.
6282
6283         * CMakeLists.txt:
6284         * GNUmakefile.list.am:
6285         * Target.pri:
6286         * WebCore.gypi:
6287         * WebCore.vcproj/WebCore.vcproj:
6288         * WebCore.xcodeproj/project.pbxproj:
6289         * dom/DeviceOrientationClient.h:
6290         * dom/DeviceOrientationController.cpp:
6291         Remove member functions to move to DeviceController.
6292         - addListener(), removeListener(), removeAllListeners(), isActive()
6293         (WebCore::DeviceOrientationController::DeviceOrientationController):
6294         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6295         (WebCore::DeviceOrientationController::client):
6296         (WebCore::DeviceOrientationController::hasLastData):
6297         (WebCore::DeviceOrientationController::getLastEvent):
6298         (WebCore::DeviceOrientationController::from):
6299         (WebCore):
6300         * dom/DeviceOrientationController.h:
6301         (WebCore):
6302         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6303         (DeviceOrientationController):
6304         * dom/Document.cpp:
6305         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6306         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6307         (WebCore::Document::suspendActiveDOMObjects):
6308         (WebCore::Document::resumeActiveDOMObjects):
6309         * loader/EmptyClients.h:
6310         (EmptyDeviceClient):
6311         (WebCore::EmptyDeviceClient::startUpdating):
6312         (WebCore::EmptyDeviceClient::stopUpdating):
6313         (WebCore):
6314         * page/DOMWindow.cpp:
6315         (WebCore::DOMWindow::addEventListener):
6316         (WebCore::DOMWindow::removeEventListener):
6317         (WebCore::DOMWindow::removeAllEventListeners):
6318         * page/DeviceClient.h: Added.
6319         (WebCore):
6320         (DeviceClient):
6321         (WebCore::DeviceClient::~DeviceClient):
6322         * page/DeviceController.cpp: Added.
6323         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6324         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6325         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6326         (WebCore):
6327         (WebCore::DeviceController::DeviceController):
6328         (WebCore::DeviceController::addDeviceEventListener):
6329         (WebCore::DeviceController::removeDeviceEventListener):
6330         (WebCore::DeviceController::removeAllDeviceEventListeners):
6331         (WebCore::DeviceController::dispatchDeviceEvent):
6332         (WebCore::DeviceController::fireDeviceEvent):
6333         * page/DeviceController.h: Added.
6334         (WebCore):
6335         (DeviceController):
6336         (WebCore::DeviceController::~DeviceController):
6337         (WebCore::DeviceController::isActive):
6338         (WebCore::DeviceController::client):
6339         (WebCore::DeviceController::hasLastData):
6340         (WebCore::DeviceController::getLastEvent):
6341
6342 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6343
6344         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6345         https://bugs.webkit.org/show_bug.cgi?id=102467
6346
6347         Reviewed by Pavel Feldman.
6348
6349         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6350         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6351         so that they will get restored only upon page navigation, not upon any agent enablement.
6352
6353         * inspector/InspectorPageAgent.cpp:
6354         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6355         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6356
6357 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6358
6359         Unreviewed, rolling out r134908.
6360         http://trac.webkit.org/changeset/134908
6361         https://bugs.webkit.org/show_bug.cgi?id=102473
6362
6363         Broke the Apple Windows Debug build. (Requested by dydx on
6364         #webkit).
6365
6366         * WebCore.exp.in:
6367         * dom/ViewportArguments.cpp:
6368         (WebCore::computeViewportAttributes):
6369         * dom/ViewportArguments.h:
6370         (WebCore):
6371
6372 2012-11-16  Peter Rybin  <prybin@chromium.org>
6373
6374         Web Inspector: show internal properties in inspector frontend
6375         https://bugs.webkit.org/show_bug.cgi?id=100021
6376
6377         Reviewed by Yury Semikhatsky.
6378
6379         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6380
6381         Test: inspector/debugger/properties-special.html
6382
6383         * inspector/front-end/ObjectPropertiesSection.js:
6384         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6385         (WebInspector.ObjectPropertiesSection.prototype.update):
6386         (.callback):
6387         (WebInspector.ObjectPropertyTreeElement.populate):
6388         (.processProperties):
6389         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6390         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6391         * inspector/front-end/RemoteObject.js:
6392         (WebInspector.RemoteObject.prototype.set else):
6393
6394 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6395
6396         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6397         https://bugs.webkit.org/show_bug.cgi?id=93691
6398
6399         Reviewed by Vsevolod Vlasov.
6400
6401         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6402         both receiving a new, more light-weight design.
6403         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6404
6405         * WebCore.gypi:
6406         * WebCore.vcproj/WebCore.vcproj:
6407         * inspector/compile-front-end.py:
6408         * inspector/front-end/ContextMenu.js:
6409         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6410         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6411         (WebInspector.OverridesView.appendBlockTo):
6412         (WebInspector.OverridesView):
6413         (WebInspector.OverridesView.showInDrawer):
6414         (WebInspector.OverridesView.prototype.get listener):
6415         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6416         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6417         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6418         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6419         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6420         (WebInspector.OverridesView.prototype._createInput):
6421         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6422         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6423         (WebInspector.OverridesView.prototype.):
6424         (WebInspector.OverridesView.prototype.set if):
6425         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6426         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6427         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6428         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6429         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6430         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6431         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6432         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6433         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6434         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6435         * inspector/front-end/ScriptsPanel.js:
6436         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6437         * inspector/front-end/SettingsScreen.js:
6438         (WebInspector.SettingsTab):
6439         (WebInspector.SettingsTab.prototype._appendSection):
6440         (WebInspector.GenericSettingsTab):
6441         (WebInspector.ExperimentsSettingsTab):
6442         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6443         (WebInspector.SettingsController.prototype.showOverrides):
6444         (WebInspector.SettingsController.prototype.showSettings):
6445         (WebInspector.SettingsController.prototype.appendApplicableItems):
6446         (WebInspector.SettingsController.prototype._buttonPressed):
6447         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6448         (WebInspector.SettingsController.prototype.showSettingsScreen):
6449         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6450         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6451         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6452         (WebInspector.SoftContextMenu.prototype.show):
6453         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6454         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6455         (WebInspector.TabbedPane.prototype._updateWidths):
6456         (WebInspector.TabbedPaneTab.prototype.setWidth):
6457         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6458         * inspector/front-end/WebKit.qrc:
6459         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6460         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6461         (.soft-context-menu-item):
6462         (.drawer-header):
6463         * inspector/front-end/inspector.html:
6464
6465 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6466
6467         Unreviewed, rolling out r134865.
6468         http://trac.webkit.org/changeset/134865
6469         https://bugs.webkit.org/show_bug.cgi?id=102466
6470
6471         Broke the Apple Windows Debug build. (Requested by dydx on
6472         #webkit).
6473
6474         * WebCore.exp.in:
6475         * bindings/js/SerializedScriptValue.h:
6476         * testing/Internals.cpp:
6477         * testing/Internals.h:
6478         (WebCore):
6479         * testing/Internals.idl:
6480
6481 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6482
6483         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6484         https://bugs.webkit.org/show_bug.cgi?id=102116
6485
6486         Reviewed by Alexander Pavlov.
6487
6488         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6489         rules. Since there is no CSSOM wrapper for @host @-rules and
6490         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6491         this crash occurs.
6492
6493         Tests: fast/css/at-host-cssom-crash.html
6494                inspector/styles/styles-include-host-rules-crash.html
6495
6496         * css/StyleRule.cpp:
6497         (WebCore::StyleRuleBase::createCSSOMWrapper):
6498         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6499         calling ASSERT_NOT_REACHED().
6500
6501 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6502
6503         Avoid copying of ViewportArguments in computeViewportAttributes function
6504         https://bugs.webkit.org/show_bug.cgi?id=102354
6505
6506         Reviewed by Kenneth Rohde Christiansen.
6507
6508         Since r134749 we do not need copying of ViewportArguments parameter in
6509         computeViewportAttributes() as it is not modified any more.
6510
6511         Tested by existing tests fast/viewport.
6512
6513         * WebCore.exp.in: Updated exported symbols for MAC.
6514         * dom/ViewportArguments.cpp:
6515         (WebCore::computeViewportAttributes):
6516         * dom/ViewportArguments.h:
6517         (WebCore):
6518
6519 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6520
6521         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6522         https://bugs.webkit.org/show_bug.cgi?id=102384
6523
6524         Reviewed by Pavel Feldman.
6525
6526         * inspector/InspectorMemoryAgent.cpp:
6527         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6528         if the check fails.
6529         * inspector/MemoryInstrumentationImpl.h:
6530         (MemoryInstrumentationClientImpl):
6531
6532 2012-11-15  Jer Noble  <jer.noble@apple.com>
6533
6534         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6535         https://bugs.webkit.org/show_bug.cgi?id=102454
6536
6537         Reviewed by Dan Bernstein.
6538
6539         NULL-check the return value of Page::pluginData().
6540
6541         * loader/SubframeLoader.cpp:
6542         (WebCore::logPluginRequest):
6543
6544 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6545
6546         [Chromium] Unreviewed build fix attempt on win
6547
6548         Include OpenTypeVerticalData.h
6549
6550         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6551         (WebCore):
6552
6553 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6554
6555         Unreviewed, rolling out r134881.
6556         http://trac.webkit.org/changeset/134881
6557         https://bugs.webkit.org/show_bug.cgi?id=102348
6558
6559         http/tests/appcache tests on JSC platforms are broken
6560
6561         * bindings/scripts/CodeGenerator.pm:
6562         (IsStrictSubtype):
6563         * bindings/scripts/CodeGeneratorJS.pm:
6564         (GenerateImplementation):
6565         * bindings/scripts/CodeGeneratorV8.pm:
6566         (GenerateHeader):
6567         (GetInternalFields):
6568         (IsSubType):
6569         (IsNodeSubType):
6570         (GenerateNormalAttrGetter):
6571         (GenerateNormalAttrSetter):
6572         (GenerateFunctionCallback):
6573         (GenerateImplementationIndexer):
6574         (GenerateToV8Converters):
6575
6576 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6577
6578         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6579         https://bugs.webkit.org/show_bug.cgi?id=102420
6580
6581         Reviewed by Gyuyoung Kim.
6582
6583         Moved out texture upload without swizzle to the separate method and changed
6584         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6585         of repaint counters in Qt Minibrowser.
6586         Added condition for sub-image buffer creation to not create it if full image is
6587         uploaded. This should give noticeable improvement for platforms that do not
6588         support sub-image upload to texture.
6589
6590         Covered by existing tests.
6591
6592         * platform/graphics/texmap/TextureMapperGL.cpp:
6593         (WebCore::TextureMapperGL::drawRepaintCounter):
6594         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6595         (WebCore):
6596         (WebCore::BitmapTextureGL::updateContents):
6597         * platform/graphics/texmap/TextureMapperGL.h:
6598         (BitmapTextureGL):
6599
6600 2012-11-15  Kent Tamura  <tkent@chromium.org>
6601
6602         A Spin button should release mouse event capturing when a modal dialog opens
6603         https://bugs.webkit.org/show_bug.cgi?id=98007
6604
6605         Reviewed by Hajime Morita.
6606
6607         Description of bug:
6608         If the mouse left button is pressed on a spin button in
6609         input[type=number] and a 'change' event handler opens a modal dialog
6610         such as alert(), a repeating timer doesn't stop and mouse event
6611         capturing isn't released even though the mouse pointer isn't on the spin
6612         button.
6613         A user will see repeating alert dialogs for a document like <input
6614         type=number value=1 onchange="if (this.value==1) {alert(...);
6615         this.value=1;}"> by clicking the up button.
6616
6617         How to solve:
6618         We should notify modal dialog or popup open to a spin button.
6619         This patch introduce PopupOpeningObserver. Chrome notifies it when
6620         any dialogs / popups is opening. SpinButtonElement implements
6621         PopupOpeningObserver and registers/unregisters itself to/from
6622         Chrome.
6623
6624         No new tests. This is a behavior change, but it's very hard to make an
6625         automated test for timer-related behavior.
6626
6627         * page/PopupOpeningObserver.h: Added.
6628         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6629         * Target.pri: Ditto.
6630         * WebCore.gypi: Ditto.
6631         * WebCore.vcproj/WebCore.vcproj: Ditto.
6632         * WebCore.xcodeproj/project.pbxproj: Ditto.
6633
6634         * page/Chrome.cpp:
6635         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6636         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6637         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6638         (WebCore::Chrome::createColorChooser): Ditto.
6639         (WebCore::Chrome::openDateTimeChooser):
6640         Added. Calls notifyPopupOpeningObservers before calling
6641         ChromeClient::openDateTimeChooser.
6642         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6643         (WebCore::Chrome::createPopupMenu): Ditto.
6644         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6645         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6646         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6647         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6648         * page/Chrome.h: Added new members and required class/struct declarations.
6649
6650         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6651         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6652         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6653         * html/shadow/PickerIndicatorElement.cpp:
6654         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6655
6656         * html/shadow/SpinButtonElement.h:
6657         (SpinButtonElement): Declare willOpenPopup.
6658         * html/shadow/SpinButtonElement.cpp:
6659         (WebCore::SpinButtonElement::defaultEventHandler):
6660         Change the order of timer start and changing the value so that we
6661         can cancel the timer correctly.
6662         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6663         (WebCore::SpinButtonElement::willOpenPopup):
6664         Release mouse event capturing before opening a modal dialog.
6665         (WebCore::SpinButtonElement::releaseCapture):
6666         Calls Chrome::unregisterPopupOpeningObserver.
6667
6668
6669 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6670
6671         Chaging pseudoClass (:enabled) should cause distribution
6672         https://bugs.webkit.org/show_bug.cgi?id=101900
6673
6674         Reviewed by Dimitri Glazkov.
6675
6676         When element's 'enabled' state is changed, we have to invalidate distribution.
6677
6678         According to the spec, :enabled matches anchor/area/link element having href attribute,
6679         and several form control elements which is not disabled. However, currently :enalbed does not match
6680         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6681
6682         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6683                fast/dom/shadow/pseudoclass-update-enabled-area.html
6684                fast/dom/shadow/pseudoclass-update-enabled-button.html
6685                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6686                fast/dom/shadow/pseudoclass-update-enabled-input.html
6687                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6688                fast/dom/shadow/pseudoclass-update-enabled-option.html
6689                fast/dom/shadow/pseudoclass-update-enabled-select.html
6690                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6691
6692         * html/HTMLAnchorElement.cpp:
6693         (WebCore::HTMLAnchorElement::parseAttribute):
6694         * html/HTMLFormControlElement.cpp:
6695         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6696         * html/HTMLOptGroupElement.cpp:
6697         (WebCore::HTMLOptGroupElement::parseAttribute):
6698         * html/HTMLOptionElement.cpp:
6699         (WebCore::HTMLOptionElement::parseAttribute):
6700
6701 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6702
6703         Update DOMException name: ValidationError
6704         https://bugs.webkit.org/show_bug.cgi?id=102416
6705
6706         Reviewed by Kentaro Hara.
6707
6708         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6709
6710         VALIDATION_ERR is historical and not used in any spec or our code.
6711
6712         * dom/DOMCoreException.cpp:
6713         * dom/ExceptionCode.h:
6714
6715 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6716
6717         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6718         https://bugs.webkit.org/show_bug.cgi?id=102348
6719
6720         Reviewed by Adam Barth.
6721
6722         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6723
6724         No tests. No change in behavior.
6725
6726         * bindings/scripts/CodeGenerator.pm:
6727         (IsSubType):
6728         * bindings/scripts/CodeGeneratorJS.pm:
6729         (GenerateImplementation):
6730         * bindings/scripts/CodeGeneratorV8.pm:
6731         (GenerateHeader):
6732         (GetInternalFields):
6733         (GenerateNormalAttrGetter):
6734         (GenerateNormalAttrSetter):
6735         (GenerateFunctionCallback):
6736         (GenerateImplementationIndexer):
6737         (GenerateToV8Converters):
6738
6739 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6740
6741         Update DOMException name: NamespaceError
6742         https://bugs.webkit.org/show_bug.cgi?id=102395
6743
6744         Reviewed by Kentaro Hara.
6745
6746         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6747
6748         Updated existing tests.
6749
6750         * dom/DOMCoreException.cpp:
6751
6752 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6753
6754         Add Settings to disable custom scrollbars on main frame
6755         https://bugs.webkit.org/show_bug.cgi?id=102323
6756
6757         Reviewed by Adam Barth.
6758
6759         Custom scrollbars on main frame don't really work well on touch devices.
6760         Add a setting to inhibit their creation.
6761
6762         No new tests. No change in default layout behavior.
6763
6764         * page/FrameView.cpp:
6765         (WebCore::FrameView::createScrollbar):
6766         * page/Settings.in:
6767
6768 2012-11-15  Rick Byers  <rbyers@chromium.org>
6769
6770         custom CSS cursors ignore hotspot values embedded in CUR files
6771         https://bugs.webkit.org/show_bug.cgi?id=100059
6772
6773         Reviewed by Kenneth Russell.
6774
6775         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6776         and plumb it through so that the existing calls to ImageSource::getHotSpot
6777         actually return the hot spot value when there is one.
6778
6779         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6780
6781         * platform/graphics/ImageSource.cpp:
6782         (WebCore::ImageSource::getHotSpot):
6783         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6784         (WebCore::DeferredImageDecoder::hotSpot):
6785         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6786         * platform/graphics/chromium/DeferredImageDecoder.h:
6787         (DeferredImageDecoder):
6788         * platform/image-decoders/ImageDecoder.h:
6789         (WebCore::ImageDecoder::hotSpot):
6790         (WebCore::ImageDecoder::hotSpotAtIndex):
6791         (ImageDecoder):
6792         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6793         (WebCore::ICOImageDecoder::hotSpot):
6794         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6795         (WebCore::ICOImageDecoder::processDirectory):
6796         (WebCore::ICOImageDecoder::readDirectoryEntry):
6797         * platform/image-decoders/ico/ICOImageDecoder.h:
6798         (ICOImageDecoder):
6799         (IconDirectoryEntry):
6800
6801 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6802
6803         Make OpenTypeVerticalData be ref-counted
6804         https://bugs.webkit.org/show_bug.cgi?id=101971
6805
6806         Reviewed by Tony Chang.
6807
6808         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6809         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6810         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6811         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6812         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6813         it be ref-counted.
6814
6815         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6816
6817         * platform/graphics/FontCache.cpp:
6818         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6819         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6820         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6821         * platform/graphics/FontCache.h:
6822         * platform/graphics/SimpleFontData.cpp:
6823         (WebCore::SimpleFontData::SimpleFontData):
6824         * platform/graphics/SimpleFontData.h:
6825         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6826         (WebCore::SimpleFontData::verticalData):
6827         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6828         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6829         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6830         (FontPlatformData):
6831         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6832         (WebCore::FontPlatformData::verticalData): Ditto.
6833         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6834         (WebCore):
6835         (FontPlatformData):
6836         * platform/graphics/opentype/OpenTypeVerticalData.h:
6837         (WebCore::OpenTypeVerticalData::create): Added.
6838         (OpenTypeVerticalData):
6839
6840 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6841
6842         Optimize the multiply-add in Biquad.cpp::process
6843         https://bugs.webkit.org/show_bug.cgi?id=75528
6844
6845         Reviewed by Brent Fulgham.
6846
6847         Pipeline the multiply-add with SSE2 intrinsics.
6848         Get ~45% performance improvement for the function.
6849
6850         * platform/audio/Biquad.cpp:
6851         (WebCore::Biquad::process):
6852
6853 2012-11-15  Alec Flett  <alecflett@chromium.org>
6854
6855         Add tests for explicit serialization values
6856         https://bugs.webkit.org/show_bug.cgi?id=96818
6857
6858         Reviewed by Adam Barth.
6859
6860         Expose direct access to the serialization/deserialization mechanisms
6861         of SerializedScriptValue to DumpRenderTree.
6862
6863         * testing/Internals.cpp:
6864         (WebCore::Internals::serializeObject):
6865         (WebCore):
6866         (WebCore::Internals::deserializeBuffer):
6867         * testing/Internals.h:
6868         (WebCore):
6869         * testing/Internals.idl:
6870
6871 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6872
6873         [GTK] Split WebCore/platform into a separate library
6874         https://bugs.webkit.org/show_bug.cgi?id=94435
6875
6876         Reviewed by Martin Robinson.
6877
6878         More people have been reporting problems when linking WebCore because
6879         the command line limit is being exceeded. Splitting WebCore a bit more
6880         is in order.
6881
6882         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6883         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6884
6885 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6886
6887         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6888         https://bugs.webkit.org/show_bug.cgi?id=102036
6889
6890         Reviewed by Darin Adler.
6891
6892         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6893
6894         No tests added because code is unused, and compile is enough to verify that conculsively.
6895
6896         * css/StyleResolver.cpp:
6897
6898 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6899
6900         Update DOMException name: SyntaxError
6901         https://bugs.webkit.org/show_bug.cgi?id=102279
6902
6903         Reviewed by Kentaro Hara.
6904
6905         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6906
6907         Updated existing tests.
6908
6909         * dom/DOMCoreException.cpp:
6910
6911 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6912
6913         [Win] key event's location does not work on Windows platform.
6914         https://bugs.webkit.org/show_bug.cgi?id=89742
6915
6916         Reviewed by Brent Fulgham.
6917
6918         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6919         directly provide a virtual keycode which distinguish between left-hand
6920         and right-hand keys. To obtain a virtual keycode, we have to look at
6921         lparam, i.e. scancode and extended key bit. So if the given virtual
6922         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6923         extended key bit and recreate a virtual keycode which distinguishes
6924         between left-hand and right-hand.
6925
6926         No new tests, because left-hand keys, right-hand keys layout tests
6927         have been already added.
6928
6929         * platform/win/KeyEventWin.cpp:
6930         (WebCore::windowsKeycodeWithLocation):
6931         Use wparam and lparam to recreate a virtual keycode which distinguishes
6932         between left-hand and right-hand if the given wparam (=virtual keycode)
6933         is control, shift, or menu.
6934         (WebCore):
6935         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6936         Use the newly added function to obtain windows virtual keycode.
6937
6938 2012-11-15  Joe Mason  <jmason@rim.com>
6939
6940         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6941         https://bugs.webkit.org/show_bug.cgi?id=102436
6942
6943         Reviewed by Rob Buis.
6944
6945         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6946         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6947         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6948         type Proxy instead of HTTP.
6949
6950         The correct thing to do when that happens is skip the "update the auth type in the
6951         credentials" step, since these are actually new credentials and not just credentials being
6952         reused for a different auth type on the same server.
6953
6954         PR 241637
6955
6956         * platform/network/blackberry/NetworkJob.cpp:
6957         (WebCore::NetworkJob::notifyAuthReceived):
6958
6959 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6960
6961         mpath elements do not clear resource lists before destruction
6962         https://bugs.webkit.org/show_bug.cgi?id=101505
6963
6964         Reviewed by Abhishek Arya.
6965
6966         The destructor for SVGMPathElement should clear its resources before
6967         deletion, so as not to leave hanging pointers in resource lists.
6968
6969         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
6970
6971         * svg/SVGMPathElement.cpp:
6972         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
6973         (WebCore):
6974         * svg/SVGMPathElement.h:
6975         (SVGMPathElement): Add destructor.
6976
6977 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6978
6979         Remove CodeGenerator::StripModule
6980         https://bugs.webkit.org/show_bug.cgi?id=102338
6981
6982         Reviewed by Adam Barth.
6983
6984         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
6985         We can remove CodeGenerator::StripModule.
6986         This might break some internal builds if the internal builds are still
6987         using modules. Ping haraken@ you observe it.
6988
6989         No tests. No change in behavior.
6990
6991         * bindings/scripts/CodeGenerator.pm:
6992         (ForAllParents):
6993         (AttributeNameForGetterAndSetter):
6994         (IsStrictSubtype):
6995         * bindings/scripts/CodeGeneratorCPP.pm:
6996         (GetClassName):
6997         (GetImplClassName):
6998         (GetParentImplClassName):
6999         (GetParent):
7000         (ConversionNeeded):
7001         (GetCPPTypeGetter):
7002         (AddForwardDeclarationsForType):
7003         (AddIncludesForType):
7004         (GenerateImplementation):
7005         * bindings/scripts/CodeGeneratorGObject.pm:
7006         (GetParentClassName):
7007         (GetParentGObjType):
7008         (GetClassName):
7009         * bindings/scripts/CodeGeneratorJS.pm:
7010         (GetParentClassName):
7011         (AddIncludesForTypeInImpl):
7012         (AddIncludesForTypeInHeader):
7013         (GenerateParametersCheckExpression):
7014         (GenerateImplementation):
7015         (GenerateParametersCheck):
7016         (GetNativeTypeFromSignature):
7017         (JSValueToNative):
7018         (NativeToJSValue):
7019         * bindings/scripts/CodeGeneratorObjC.pm:
7020         (GetClassName):
7021         (GetImplClassName):
7022         (GetParentImplClassName):
7023         (GetParentAndProtocols):
7024         (GetPropertyAttributes):
7025         (ConversionNeeded):
7026         (GetObjCTypeGetter):
7027         (AddForwardDeclarationsForType):
7028         (AddIncludesForType):
7029         (GenerateImplementation):
7030         * bindings/scripts/CodeGeneratorV8.pm:
7031         (AddIncludesForType):
7032         (GenerateHeader):
7033         (IsSubType):
7034         (GenerateSingleBatchedAttribute):
7035         (GenerateImplementation):
7036         (BaseInterfaceName):
7037         (GetTypeFromSignature):
7038         (IsWrapperType):
7039
7040 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
7041
7042         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
7043         https://bugs.webkit.org/show_bug.cgi?id=101696
7044
7045         Reviewed by Tony Chang.
7046
7047         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
7048         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
7049
7050         No new tests / covered by all existing CSS tests.
7051
7052         * css/StyleResolver.cpp:
7053         (WebCore::StyleResolver::applyProperty):
7054
7055 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7056
7057         [V8] Remove redundant $interfaceName from function parameters
7058         https://bugs.webkit.org/show_bug.cgi?id=102334
7059
7060         Reviewed by Adam Barth.
7061
7062         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
7063         is redundant. We can get $interfaceName by $dataNode->name.
7064
7065         No tests. No change in behavior.
7066
7067         * bindings/scripts/CodeGeneratorV8.pm:
7068         (GenerateOpaqueRootForGC):
7069         (GenerateHeader):
7070         (GenerateConstructorGetter):
7071         (GenerateNormalAttrGetter):
7072         (GenerateReplaceableAttrSetter):
7073         (GenerateNormalAttrSetter):
7074         (GenerateOverloadedFunctionCallback):
7075         (GenerateFunctionCallback):
7076         (GenerateOverloadedConstructorCallback):
7077         (GenerateSingleConstructorCallback):
7078         (GenerateConstructorCallback):
7079         (GenerateEventConstructorCallback):
7080         (GenerateTypedArrayConstructorCallback):
7081         (GenerateNamedConstructorCallback):
7082         (GenerateBatchedAttributeData):
7083         (GenerateImplementation):
7084         (GenerateToV8Converters):
7085         (GetNativeTypeForConversions):
7086
7087 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
7088
7089         Ensure that scrollbar layers show debug borders
7090         https://bugs.webkit.org/show_bug.cgi?id=102429
7091
7092         Reviewed by Anders Carlsson.
7093
7094         After r133517, scrollbar layers no longer showed debug borders, which
7095         was very confusing. Fix this by explicitly calling setShowDebugBorder()
7096         on the scrollbar-related layers owned by RenderLayerCompositor
7097         and RenderLayerBacking.
7098         
7099         * rendering/RenderLayerBacking.cpp:
7100         (WebCore::RenderLayerBacking::updateDebugIndicators):
7101         * rendering/RenderLayerCompositor.cpp:
7102         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7103         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7104
7105 2012-11-15  Andreas Kling  <akling@apple.com>
7106
7107         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7108         <http://webkit.org/b/102423>
7109
7110         Reviewed by Anders Carlsson.
7111
7112         Use Element::getAttributeItem() to find out if the element has a given attribute
7113         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7114
7115         * html/parser/HTMLConstructionSite.cpp:
7116         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7117
7118 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7119
7120         Update DOMException name: DOMStringSizeError
7121         https://bugs.webkit.org/show_bug.cgi?id=102089
7122
7123         Reviewed by Ojan Vafai.
7124
7125         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7126
7127         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7128
7129         * dom/DOMCoreException.cpp:
7130         * dom/ExceptionCode.h:
7131
7132 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7133
7134         IndexedDB: Indexing tests are flaky-crashing
7135         https://bugs.webkit.org/show_bug.cgi?id=102283
7136
7137         Reviewed by Tony Chang.
7138
7139         Processing the final task can cause IDBTransactionBackendImpl references to be released
7140         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7141         swapping queues) control would fall off the end of the function. The loop termination
7142         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7143         the method completes.
7144
7145         Test: storage/indexeddb/transaction-crash-in-tasks.html
7146
7147         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7148         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7149         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7150         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7151
7152 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7153
7154         MutationObserver wrapper should not be collected while still observing
7155         https://bugs.webkit.org/show_bug.cgi?id=102328
7156
7157         Reviewed by Adam Barth.
7158
7159         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7160         collected while it is still observing the DOM. This is needed because
7161         the wrapper is passed into the callback and expandos on the wrapper
7162         should be preserved.
7163
7164         Test: fast/mutation/observer-wrapper-dropoff.html
7165
7166         * bindings/js/JSMutationObserverCustom.cpp:
7167         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7168         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7169         (WebCore::V8MutationObserver::constructorCallback):
7170         * dom/MutationObserver.cpp:
7171         (WebCore::MutationObserver::create):
7172         (WebCore::MutationObserver::MutationObserver):
7173         (WebCore::MutationObserver::observationStarted):
7174         (WebCore::MutationObserver::observationEnded):
7175         * dom/MutationObserver.h:
7176         (WebCore):
7177         * dom/MutationObserver.idl:
7178
7179 2012-11-15  Tony Chang  <tony@chromium.org>
7180
7181         Generate Settings from a .in file
7182         https://bugs.webkit.org/show_bug.cgi?id=100393
7183
7184         Reviewed by Adam Barth.
7185
7186         Generate most settings from an .in file to reduce human mistakes and
7187         to make it easier to add/remove new settings.
7188
7189         I only moved settings that are easy to move at this point.  There are many more that
7190         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7191         do that in a follow up patch.
7192
7193         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7194
7195         No new tests, this is a refactor.
7196
7197         * CMakeLists.txt:
7198         * DerivedSources.make: Run make_settings.pl.
7199         * DerivedSources.pri: Run make_settings.pl.
7200         * GNUmakefile.am: Run make_settings.pl.
7201         * GNUmakefile.list.am:
7202         * WebCore.exp.in: Remove functions that are now inline in the header.
7203         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7204         * WebCore.gyp/scripts/action_makenames.py:
7205         (main): Allow make_settings.pl.
7206         * WebCore.order: Remove functions that are now inline in the header.
7207         * html/ValidationMessage.cpp:
7208         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7209         * page/Settings.cpp:
7210         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7211         * page/Settings.h:
7212         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7213         * page/Settings.in: Added.
7214         * page/make_settings.pl: Added.
7215         (defaultItemFactory):
7216         (generateCode):
7217         (generateHeader): Use a similar model as make_names.pl.
7218         (printConditionalMacros):
7219         (printGettersAndSetters):
7220         (printMemberVariables):
7221         (printGetterAndSetter):
7222         (printInitializerList):
7223         (printInitializer):
7224
7225 2012-11-15  Alpha Lam  <hclam@chromium.org>
7226
7227         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7228         https://bugs.webkit.org/show_bug.cgi?id=102019
7229
7230         Reviewed by Stephen White.
7231
7232         Goal of this change is to keep ImageDecodingStore clean and only do
7233         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7234         DeferredImageDecoder.
7235
7236         In particular these two methods are moved:
7237         - ImageDecodingStore::createLazyDecodedSkBitmap
7238         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7239
7240         No new tests. There is no new code (really). It is just moved from
7241         ImageDecodingStore to DeferredImageDecoder.
7242
7243         No change in behavior. Code is tested with:
7244         Unit tests: webkit_unit_tests
7245         Layout test: platform/chromium/virtual/deferred
7246
7247         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7248         (WebCore::DeferredImageDecoder::isLazyDecoded):
7249         (WebCore):
7250         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7251         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7252         (WebCore::DeferredImageDecoder::setData):
7253         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7254         * platform/graphics/chromium/DeferredImageDecoder.h:
7255         (WebCore):
7256         (DeferredImageDecoder):
7257         * platform/graphics/chromium/ImageDecodingStore.cpp:
7258         * platform/graphics/chromium/ImageDecodingStore.h:
7259         (ImageDecodingStore):
7260         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7261         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7262         * platform/graphics/chromium/ImageFrameGenerator.h:
7263         (WebCore::ImageFrameGenerator::create):
7264         (ImageFrameGenerator):
7265         * platform/graphics/skia/NativeImageSkia.cpp:
7266         (WebCore::NativeImageSkia::resizedBitmap):
7267
7268 2012-11-15  Roger Fong  <roger_fong@apple.com>
7269
7270         Unreviewed. Build fix for Windows after r134767.
7271
7272         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7273
7274         * WebCore.vcproj/WebCore.vcproj:
7275         * WebCore.vcproj/WebCoreCommon.vsprops:
7276
7277 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7278
7279         Track subframe count to avoid traversing the tree when there's no subframes
7280         https://bugs.webkit.org/show_bug.cgi?id=101821
7281
7282         Reviewed by Ojan Vafai.
7283
7284         Bug 101619 showed a 9-14% improvement from not walking the children during
7285         removeChild looking for frames when there's known to be no frames. The fix
7286         in that bug only avoids this walk when the whole document has no frames, this
7287         patch extends it to skip traversing subtrees that have no iframes by hooking
7288         the frame assignment to walk up the tree and keep track of the count of frames
7289         in the subtree on contentFrame assignment and then decrement it on disconnect.
7290
7291         No new tests, this is just a perf refactor.
7292
7293         * dom/ContainerNode.cpp:
7294         (WebCore::willRemoveChildren):
7295         * dom/ContainerNodeAlgorithms.cpp:
7296         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7297         * dom/ContainerNodeAlgorithms.h:
7298         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7299         (ChildFrameDisconnector):
7300         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7301           Renamed from collectDescendant() to better reflect what it really does.
7302         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7303           Renamed from disconnect() to better reflect what it really does.
7304         (WebCore::ChildFrameDisconnector::disconnect):
7305           New method that does the collection of frame owners on either the root
7306           or only it's descendants.
7307         * dom/Node.cpp:
7308         (WebCore::Node::connectedSubframeCount):
7309         (WebCore::Node::incrementConnectedSubframeCount):
7310         (WebCore::Node::decrementConnectedSubframeCount):
7311         * dom/Node.h:
7312         * dom/NodeRareData.h:
7313         (WebCore::NodeRareData::NodeRareData):
7314         (WebCore::NodeRareData::connectedSubframeCount):
7315         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7316         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7317         * html/HTMLFrameOwnerElement.cpp:
7318         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7319         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7320
7321 2012-11-15  Alpha Lam  <hclam@chromium.org>
7322
7323         [chromium] WebGL texImage2D fails with deferred image decoding
7324         https://bugs.webkit.org/show_bug.cgi?id=102310
7325
7326         Reviewed by Kenneth Russell.
7327
7328         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7329         to decode an image. When deferred image decoding is enabled this class
7330         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7331         in failing of texImage2D.
7332
7333         This change uses ImageDecoder directly instead of ImageSource. This skips
7334         the code path of deferred image decoding. This behavior is correct because
7335         GraphicsContext3D wants to decode the image differently with alpha not
7336         premultiplied and color profile applied optionally.
7337
7338         Added a test to prove this change fixed the bug.
7339
7340         Test: fast/images/webgl-teximage2d.html
7341
7342         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7343         (WebCore::GraphicsContext3D::getImageData):
7344
7345 2012-11-15  Jer Noble  <jer.noble@apple.com>
7346
7347         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7348
7349         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7350         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7351
7352 2012-11-15  Jer Noble  <jer.noble@apple.com>
7353
7354         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7355
7356         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7357         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7358         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7359
7360 2012-11-15  Adam Barth  <abarth@webkit.org>
7361
7362         [V8] We shouldn't call deprecated V8 APIs
7363         https://bugs.webkit.org/show_bug.cgi?id=102407
7364
7365         Reviewed by Eric Seidel.
7366
7367         This patch was written by Sven Panne on the V8 team. He would prefer
7368         that we not call deprecated V8 APIs. This patch updates these call
7369         sites to more modern idioms.
7370
7371         * bindings/scripts/CodeGeneratorV8.pm:
7372         (GenerateConstructorGetter):
7373         (GenerateImplementation):
7374         * bindings/scripts/test/V8/V8TestObj.cpp:
7375         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7376         * bindings/v8/PageScriptDebugServer.cpp:
7377         (WebCore::PageScriptDebugServer::addListener):
7378         * bindings/v8/ScriptController.cpp:
7379         (WebCore::ScriptController::setContextDebugId):
7380         (WebCore::ScriptController::contextDebugId):
7381         * bindings/v8/ScriptProfiler.cpp:
7382         (WebCore::ScriptProfiler::objectByHeapObjectId):
7383             - This code doesn't seem to do anything anymore.
7384         * bindings/v8/V8DOMConfiguration.h:
7385         (WebCore::V8DOMConfiguration::configureAttribute):
7386         * bindings/v8/V8DOMWindowShell.cpp:
7387         (WebCore::setInjectedScriptContextDebugId):
7388         * bindings/v8/V8DOMWrapper.cpp:
7389         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7390         (WebCore::V8DOMWrapper::isWrapperOfType):
7391         * bindings/v8/V8EventListenerList.h:
7392         (WebCore::V8EventListenerList::doFindWrapper):
7393         (WebCore::V8EventListenerList::findOrCreateWrapper):
7394         * bindings/v8/WorkerContextExecutionProxy.cpp:
7395         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7396         * bindings/v8/WrapperTypeInfo.h:
7397         (WebCore::WrapperTypeInfo::unwrap):
7398
7399 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7400
7401         Unreviewed, rolling out r134800 and r134805.
7402         http://trac.webkit.org/changeset/134800
7403         http://trac.webkit.org/changeset/134805
7404         https://bugs.webkit.org/show_bug.cgi?id=102417
7405
7406         This patch broke chromium port (Requested by jianli on
7407         #webkit).
7408
7409         * Modules/mediastream/RTCPeerConnection.cpp:
7410         (WebCore::RTCPeerConnection::RTCPeerConnection):
7411         (WebCore::RTCPeerConnection::createOffer):
7412         (WebCore::RTCPeerConnection::createAnswer):
7413         (WebCore::RTCPeerConnection::setLocalDescription):
7414         (WebCore::RTCPeerConnection::localDescription):
7415         (WebCore::RTCPeerConnection::setRemoteDescription):
7416         (WebCore::RTCPeerConnection::remoteDescription):
7417         (WebCore::RTCPeerConnection::updateIce):
7418         (WebCore::RTCPeerConnection::addIceCandidate):
7419         (WebCore::RTCPeerConnection::readyState):
7420         (WebCore::RTCPeerConnection::iceState):
7421         (WebCore::RTCPeerConnection::addStream):
7422         (WebCore::RTCPeerConnection::close):
7423         (WebCore::RTCPeerConnection::stop):
7424         (WebCore::RTCPeerConnection::changeReadyState):
7425         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7426         * Modules/mediastream/RTCPeerConnection.h:
7427         (RTCPeerConnection):
7428         * Modules/mediastream/RTCPeerConnection.idl:
7429         * dom/EventNames.h:
7430         (WebCore):
7431         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7432         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7433         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7434         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7435         (RTCPeerConnectionHandlerClient):
7436         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7437         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7438         (RTCPeerConnectionHandlerChromium):
7439
7440 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7441
7442         Remove Node::aboutToUnload and be more explicit about what it was for
7443         https://bugs.webkit.org/show_bug.cgi?id=102357
7444
7445         Reviewed by Ryosuke Niwa.
7446
7447         Node::aboutToUnload was confusingly named because it was only called on
7448         the focused node, and it really only existed to support notifying the
7449         embedder that inputs should stop being editable on unload. Instead add
7450         a new method to HTMLInputElement that ends editing and call that
7451         explicitly in the FrameLoader so it's clear what this is about.
7452
7453         No new tests, this is just a refactoring.
7454
7455         * dom/Node.h:
7456         * html/HTMLInputElement.cpp:
7457         (WebCore::HTMLInputElement::endEditing):
7458             New method that handles finishing editing.
7459         * html/HTMLInputElement.h:
7460         (HTMLInputElement):
7461         * html/TextFieldInputType.cpp:
7462         (WebCore::TextFieldInputType::handleBlurEvent):
7463             Use the new method to reduce code duplication.
7464         * loader/FrameLoader.cpp:
7465         (WebCore::FrameLoader::stopLoading):
7466             Be explicit about what this check was for.
7467
7468 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7469
7470         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7471         https://bugs.webkit.org/show_bug.cgi?id=102386
7472
7473         Reviewed by Adam Barth.
7474
7475         Existing tests expanded to cover patch.
7476
7477         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7478         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7479         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7480         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7481         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7482         (WebCore):
7483         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7484         (WebKit):
7485         (RTCPeerConnectionHandlerChromium):
7486
7487 2012-11-15  Rick Byers  <rbyers@chromium.org>
7488
7489         No tests for changing mouse cursors
7490         https://bugs.webkit.org/show_bug.cgi?id=100550
7491
7492         Reviewed by Brent Fulgham.
7493
7494         Add infrastructure to keep track of the last set mouse cursor,
7495         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7496         we can reliably detect when an uninitialized Cursor object is used (such as
7497         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7498
7499         Test: fast/events/mouse-cursor.html
7500
7501         * WebCore.exp.in: Add Cursor copy ctor export
7502         * page/EventHandler.cpp:
7503         (WebCore::OptionalCursor::cursor):
7504         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7505         * page/EventHandler.h:
7506         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7507         * platform/Cursor.h:
7508         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7509         (WebCore::Cursor::type): Assert cursor type is valid.
7510         * testing/Internals.cpp:
7511         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7512         (WebCore):
7513         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7514         * testing/Internals.h: Declare getCurrentCursorInfo
7515         * testing/Internals.idl: Declare getCurrentCursorInfo
7516
7517 2012-11-13  Jer Noble  <jer.noble@apple.com>
7518
7519         Support loading of blob URLs in AVFoundation.
7520         https://bugs.webkit.org/show_bug.cgi?id=102182
7521
7522         Reviewed by Eric Carlson.
7523
7524         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7525
7526         Test: media/video-src-blob.html
7527
7528         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7529         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7530         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7531             media path if the key scheme is skp://.
7532         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7533             the media engine requests it.
7534         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7535         
7536         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7537         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7538         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7539         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7540         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7541
7542         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7543         data to the AVAssetResourceLoader.
7544         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7545         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7546         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7547         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7548         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7549         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7550         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7551         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7552             AVAssetResourceLoadingRequest.
7553         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7554         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7555             has completed.
7556         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7557             field of the AVAssetResourceLoadingRequest.
7558
7559         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7560         document's cachedResourceLoader.
7561         * html/HTMLMediaElement.cpp:
7562         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7563         * html/HTMLMediaElement.h:
7564         * platform/graphics/MediaPlayer.cpp:
7565         (WebCore::MediaPlayer::cachedResourceLoader):
7566         * platform/graphics/MediaPlayer.h:
7567         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7568
7569         Add a convenience method to convert from MIME type -> UTI.
7570         * platform/network/mac/UTIUtilities.h:
7571         * platform/network/mac/UTIUtilities.mm:
7572         (WebCore::UTIFromMIMEType):
7573
7574         Add new files to project.
7575         * WebCore.xcodeproj/project.pbxproj:
7576
7577 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7578
7579         Remove initiallyFitToViewport attribute
7580         https://bugs.webkit.org/show_bug.cgi?id=102392
7581
7582         Reviewed by Noam Rosenthal.
7583
7584         Remove the initiallyFitToViewport which shouldn't have been
7585         added in the first place. We now reset userScalable to auto (-1)
7586         in case it was not explicitly set by the web author.
7587
7588         Same behavior, covered by existing tests.
7589
7590         * dom/ViewportArguments.cpp:
7591         (WebCore::ViewportArguments::resolve):
7592         * dom/ViewportArguments.h:
7593         (ViewportAttributes):
7594
7595 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7596
7597         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7598         https://bugs.webkit.org/show_bug.cgi?id=102382
7599
7600         Reviewed by Adam Barth.
7601
7602         Updating readyState & iceState, and adding iceGatheringState.
7603         Also safeguarding the event timer callback.
7604
7605         Patch covered by existing tests.
7606
7607         * Modules/mediastream/RTCPeerConnection.cpp:
7608         (WebCore::RTCPeerConnection::RTCPeerConnection):
7609         (WebCore::RTCPeerConnection::createOffer):
7610         (WebCore::RTCPeerConnection::createAnswer):
7611         (WebCore::RTCPeerConnection::setLocalDescription):
7612         (WebCore::RTCPeerConnection::localDescription):
7613         (WebCore::RTCPeerConnection::setRemoteDescription):
7614         (WebCore::RTCPeerConnection::remoteDescription):
7615         (WebCore::RTCPeerConnection::updateIce):
7616         (WebCore::RTCPeerConnection::addIceCandidate):
7617         (WebCore::RTCPeerConnection::readyState):
7618         (WebCore::RTCPeerConnection::iceGatheringState):
7619         (WebCore):
7620         (WebCore::RTCPeerConnection::iceState):
7621         (WebCore::RTCPeerConnection::addStream):
7622         (WebCore::RTCPeerConnection::close):
7623         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7624         (WebCore::RTCPeerConnection::stop):
7625         (WebCore::RTCPeerConnection::changeReadyState):
7626         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7627         * Modules/mediastream/RTCPeerConnection.h:
7628         (RTCPeerConnection):
7629         * Modules/mediastream/RTCPeerConnection.idl:
7630         * dom/EventNames.h:
7631         (WebCore):
7632         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7633         (RTCPeerConnectionHandlerClient):
7634         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7635         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7636         (WebCore):
7637         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7638         (RTCPeerConnectionHandlerChromium):
7639
7640 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7641
7642         Unreviewed, rolling out r134649 and r134665.
7643         http://trac.webkit.org/changeset/134649
7644         http://trac.webkit.org/changeset/134665
7645         https://bugs.webkit.org/show_bug.cgi?id=102413
7646
7647         Broke a ton of downstream chromium tests (Requested by japhet
7648         on #webkit).
7649
7650         * loader/DocumentLoader.cpp:
7651         (WebCore::DocumentLoader::DocumentLoader):
7652         (WebCore::DocumentLoader::~DocumentLoader):
7653         (WebCore::DocumentLoader::finishedLoading):
7654         (WebCore::DocumentLoader::clearMainResourceLoader):
7655         (WebCore::DocumentLoader::isLoadingInAPISense):
7656         (WebCore::DocumentLoader::documentURL):
7657         (WebCore::DocumentLoader::isLoadingMainResource):
7658         (WebCore::DocumentLoader::startLoadingMainResource):
7659         * loader/DocumentLoader.h:
7660         (DocumentLoader):
7661         * loader/FrameLoader.cpp:
7662         (WebCore::FrameLoader::FrameLoader):
7663         (WebCore::FrameLoader::init):
7664         * loader/FrameLoaderStateMachine.cpp:
7665         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7666         * loader/FrameLoaderStateMachine.h:
7667         * loader/MainResourceLoader.cpp:
7668         (WebCore::shouldLoadAsEmptyDocument):
7669         (WebCore):
7670         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7671         (WebCore::MainResourceLoader::didReceiveResponse):
7672         (WebCore::MainResourceLoader::didFinishLoading):
7673         (WebCore::MainResourceLoader::handleEmptyLoad):
7674         (WebCore::MainResourceLoader::loadNow):
7675         (WebCore::MainResourceLoader::load):
7676         * loader/MainResourceLoader.h:
7677         (MainResourceLoader):
7678
7679 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7680
7681         Correct syntax of old-style IDL files
7682         https://bugs.webkit.org/show_bug.cgi?id=102335
7683
7684         Reviewed by Adam Barth.
7685
7686         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7687         We should correct the rest of them.
7688
7689         No tests. No change in behavior.
7690
7691         * html/canvas/OESElementIndexUint.idl:
7692         * page/PerformanceMark.idl:
7693         * page/PerformanceMeasure.idl:
7694
7695 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7696
7697         Remove isHTMLInputElement since it's unused and toInputElement exists 
7698         https://bugs.webkit.org/show_bug.cgi?id=102358
7699
7700         Reviewed by Ojan Vafai.
7701
7702         Remove isHTMLInputElement as no one uses it. Everyone just uses
7703         Node::toInputElement and checks for a 0 return value instead.
7704
7705         toInputElement is also more reliable as there's no requirement that
7706         subclasses of HTMLInputElement have the tag name of inputTag so using
7707         this method in a check could potentially miss future subclasses with
7708         different tag names, though none exist right now.
7709
7710         No new tests, this just deletes dead code.
7711
7712         * html/HTMLInputElement.h:
7713
7714 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7715
7716         Update DOMException name: NotSupportedError
7717         https://bugs.webkit.org/show_bug.cgi?id=102139
7718
7719         Reviewed by Ojan Vafai.
7720
7721         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7722
7723         Updated existing tests.
7724
7725         * dom/DOMCoreException.cpp:
7726
7727 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7728
7729         Remove isHTMLInputElement since it's unused and toInputElement exists 
7730         https://bugs.webkit.org/show_bug.cgi?id=102358
7731
7732         Reviewed by Ojan Vafai.
7733
7734         Remove isHTMLInputElement as no one uses it. Everyone just uses
7735         Node::toInputElement and checks for a 0 return value instead.
7736
7737         toInputElement is also more reliable as there's no requirement that
7738         subclasses of HTMLInputElement have the tag name of inputTag so using
7739         this method in a check could potentially miss future subclasses with
7740         different tag names, though none exist right now.
7741
7742         No new tests, this just deletes dead code.
7743
7744         * html/HTMLInputElement.h:
7745
7746 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7747
7748         Update DOMException name: NoModificationAllowedError
7749         https://bugs.webkit.org/show_bug.cgi?id=102134
7750
7751         Reviewed by Ojan Vafai.
7752
7753         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7754
7755         Updated existing tests.
7756
7757         * dom/DOMCoreException.cpp:
7758
7759 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7760
7761         Remove unnecesary dependencies INPUT_TYPE_COLOR
7762         https://bugs.webkit.org/show_bug.cgi?id=102379
7763
7764         Reviewed by Darin Adler.
7765
7766         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7767         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7768         compile errors in such configuration.
7769
7770         No new tests since this is not adding any extra functionality.
7771
7772         * WebCore.gyp/WebCore.gyp:
7773         * html/ColorInputType.cpp:
7774         (WebCore::ColorInputType::shouldShowSuggestions):
7775         * make-file-arrays.py:
7776         (main):
7777
7778 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7779
7780         Update computed line position algorithm
7781         https://bugs.webkit.org/show_bug.cgi?id=93779
7782
7783         Reviewed by Philippe Normand.
7784
7785         Compute the position of a text track relative to rendered tracks. This is needed to position
7786         cues correctly when there is more than one text track.
7787
7788         Test: media/track/track-cue-container-rendering-position.html
7789
7790         * html/track/TextTrack.cpp:
7791         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7792         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7793             to other rendered tracks.
7794         * html/track/TextTrack.h:
7795
7796         * html/track/TextTrackCue.cpp:
7797         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7798             instead of trackIndex() so cues are positioned correctly.
7799
7800         * html/track/TextTrackList.cpp:
7801         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7802         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7803         * html/track/TextTrackList.h:
7804
7805 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7806
7807         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7808         https://bugs.webkit.org/show_bug.cgi?id=101323
7809
7810         Reviewed by Martin Robinson.
7811
7812         Removing ifdef since we bumped Harfbuzz dependency. This is the
7813         real fix replacing the previous workaround of having a Chromium
7814         specific ifdef here, since Chromium uses a newer HarfBuzz version
7815         already.
7816
7817         No new tests, covered by css3/flexbox/inline-flex-crash.html
7818         which will not crash anymore even with the ifdef removed.
7819
7820         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7821         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7822
7823 2012-11-15  Andreas Kling  <kling@webkit.org>
7824
7825         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7826         <http://webkit.org/b/102304>
7827
7828         Reviewed by Anders Carlsson.
7829
7830         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7831
7832         * html/parser/HTMLConstructionSite.cpp:
7833         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7834
7835             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7836             we're merging attributes into.
7837
7838         * dom/ElementAttributeData.h:
7839         (ElementAttributeData):
7840
7841             Remove a now-unnecessary friend declaration.
7842
7843 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7844
7845         Prevent creation of detached frames in ShadowRoot
7846         https://bugs.webkit.org/show_bug.cgi?id=102333
7847
7848         Reviewed by Dimitri Glazkov.
7849
7850         Similar to Bug 94717 you can create a loaded iframe in a detached
7851         subtree using ShadowRoot. To fix this we just need to make
7852         SubframeLoadingDisabler traverse through shadow boundaries.
7853
7854         Test: fast/frames/detached-shadow-frame.html
7855
7856         * html/HTMLFrameOwnerElement.h:
7857         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7858
7859 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7860
7861         Changing pseudoClass (:visited) should cause distribution.
7862         https://bugs.webkit.org/show_bug.cgi?id=101700
7863
7864         Reviewed by Dimitri Glazkov.
7865
7866         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7867
7868         Since we would like to check a few pseudoClasses at once, we make the argument of
7869         SelectRuleFeatureSet::hasSelectorFor int.
7870
7871         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7872                fast/dom/shadow/pseudoclass-update-visited-area.html
7873
7874         * dom/ElementShadow.cpp:
7875         (WebCore::invalidateParentDistributionIfNecessary):
7876         * dom/ElementShadow.h:
7877         (WebCore):
7878         * html/HTMLAnchorElement.cpp:
7879         (WebCore::HTMLAnchorElement::parseAttribute):
7880         * html/shadow/SelectRuleFeatureSet.h:
7881         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7882
7883 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7884
7885         Coordinated Graphics: support the "freeze animations" API
7886         https://bugs.webkit.org/show_bug.cgi?id=100703
7887
7888         Reviewed by Noam Rosenthal.
7889
7890         Make animations resumable in Coordinated Graphics.
7891         Pausing was already implemented.
7892
7893         Tested with animations and transitions tests. No tests to be
7894         unskipped because these tests has been working without this API
7895         as well (although this is the preferred way).
7896
7897         * platform/graphics/GraphicsLayerAnimation.cpp:
7898         (WebCore::GraphicsLayerAnimation::apply):
7899         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7900         Do not consider the time while we was suspended as part of
7901         the total running time.
7902         (WebCore):
7903         (WebCore::GraphicsLayerAnimation::resume):
7904         (WebCore::GraphicsLayerAnimations::suspend):
7905         (WebCore::GraphicsLayerAnimations::resume):
7906         * platform/graphics/GraphicsLayerAnimation.h:
7907         (GraphicsLayerAnimation):
7908         (GraphicsLayerAnimations):
7909
7910 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7911
7912         Relocate the ARM NEON SVG filter optimizations
7913         https://bugs.webkit.org/show_bug.cgi?id=102214
7914
7915         Reviewed by Zoltan Herczeg.
7916
7917         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7918         to keep them together with the others.
7919         From now all graphics optimization for ARM NEON should go here.
7920
7921         * CMakeLists.txt:
7922         * GNUmakefile.am:
7923         * GNUmakefile.list.am:
7924         * Target.pri:
7925         * WebCore.gyp/WebCore.gyp:
7926         * WebCore.gypi:
7927         * WebCore.pri:
7928         * WebCore.xcodeproj/project.pbxproj:
7929         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7930         (WebCore):
7931         (FEBlendUtilitiesNEON):
7932         (WebCore::FEBlendUtilitiesNEON::div255):
7933         (WebCore::FEBlendUtilitiesNEON::normal):
7934         (WebCore::FEBlendUtilitiesNEON::multiply):
7935         (WebCore::FEBlendUtilitiesNEON::screen):
7936         (WebCore::FEBlendUtilitiesNEON::darken):
7937         (WebCore::FEBlendUtilitiesNEON::lighten):
7938         (WebCore::FEBlend::platformApplyNEON):
7939         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7940         (WebCore):
7941         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7942         (WebCore::FEComposite::platformArithmeticNeon):
7943         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7944         (WebCore):
7945         (WebCore::boxBlurNEON):
7946         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7947         (WebCore):
7948         (WebCore::feLightingConstantsForNeon):
7949         (WebCore::FELighting::platformApplyNeonWorker):
7950         (WebCore::FELighting::getPowerCoefficients):
7951         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7952         (WebCore):
7953         (FELightingFloatArgumentsForNeon):
7954         (FELightingPaintingDataForNeon):
7955         (WebCore::FELighting::platformApplyNeon):
7956         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7957         (WebCore):
7958         (WebCore::loadRGBA8AsFloat):
7959         (WebCore::storeFloatAsRGBA8):
7960
7961 2012-11-15  Mike West  <mkwst@chromium.org>
7962
7963         We should trigger a console warning when we encounter invalid sandbox flags.
7964         https://bugs.webkit.org/show_bug.cgi?id=101956
7965
7966         Reviewed by Adam Barth.
7967
7968         A developer who writes '<iframe sandbox="allowScripts">' probably has
7969         something in mind other than what the browser interprets. In these
7970         situations, we should log a console warning that notes 'allowScripts'
7971         is an invalid sandbox flag ('allow-scripts' is probably what she
7972         meant).
7973
7974         This patch does the simplest thing possible: it throws a warning that
7975         lists the invalid flags encountered for sandbox attributes on iframes,
7976         and for sandbox Content Security Policy directives.
7977
7978         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
7979                http/tests/security/sandboxed-iframe-invalid.html
7980
7981         * dom/SecurityContext.cpp:
7982         (WebCore::SecurityContext::parseSandboxPolicy):
7983         * dom/SecurityContext.h:
7984         (SecurityContext):
7985             Accept a new out parameter, invalidTokensErrorMessage. If invalid
7986             tokens are encountered, build an error message string, and pass it
7987             back to the caller through this parameter.
7988         * html/HTMLIFrameElement.cpp:
7989         (WebCore::HTMLIFrameElement::parseAttribute):
7990         * page/ContentSecurityPolicy.cpp:
7991         (WebCore::CSPDirectiveList::applySandboxPolicy):
7992             When applying a sandbox policy, pass a string into
7993             SecurityContext::parseSandboxPolicy to grab any errors that might
7994             be encountered, and log a warning in that event.
7995         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
7996         (WebCore):
7997         * page/ContentSecurityPolicy.h:
7998             Adding a new method to report invalid sandbox flags.
7999
8000 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8001
8002         Rename member vars in ViewportArgument to match css-device-adapt
8003         https://bugs.webkit.org/show_bug.cgi?id=102355
8004
8005         Reviewed by Gyuyoung Kim.
8006
8007         No behavior change, thus no new tests.
8008
8009         * dom/ViewportArguments.cpp:
8010         (WebCore::ViewportArguments::resolve):
8011         (WebCore::setViewportFeature):
8012         * dom/ViewportArguments.h:
8013         (WebCore::ViewportArguments::ViewportArguments):
8014         (ViewportArguments):
8015         (WebCore::ViewportArguments::operator==):
8016
8017 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
8018
8019         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
8020         https://bugs.webkit.org/show_bug.cgi?id=102366
8021
8022         Reviewed by Vsevolod Vlasov.
8023
8024         * inspector/InjectedScriptCanvasModuleSource.js:
8025         (.):
8026
8027 2012-11-15  Mark Rowe  <mrowe@apple.com>
8028
8029         Build fix.
8030
8031         Disable deprecation warnings in a few places that need it.
8032
8033         * platform/graphics/ca/mac/TileCache.mm:
8034         (WebCore::TileCache::drawRepaintCounter):
8035         * platform/graphics/mac/FontMac.mm:
8036         (WebCore::showGlyphsWithAdvances):
8037         * platform/graphics/mac/WebLayer.mm:
8038         (drawLayerContents):
8039
8040 2012-11-15  Kent Tamura  <tkent@chromium.org>
8041
8042         Support stand-alone month names in calendar picker
8043         https://bugs.webkit.org/show_bug.cgi?id=102196
8044
8045         Reviewed by Kentaro Hara.
8046
8047         We have showed non stand-alone month names in any locales. However
8048         we should show stand-alone month names in some locales such as
8049         Russian.
8050
8051         This patch introduce PagePopupController::formatMonth. It is
8052         exposed to page-popups, and format year-month pairs in the same
8053         way as input[type=month].
8054
8055         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
8056
8057         * Resources/pagepopups/calendarPicker.js:
8058         (Month.prototype.toLocaleString):
8059         Calls pagePopupController.formatMonth except Japanese locale.
8060         (handleArgumentsTimeout):
8061         Remove unnecessary default monthLabels.
8062         * page/PagePopupController.cpp:
8063         (WebCore::PagePopupController::formatMonth): Added.
8064         * page/PagePopupController.h:
8065         (PagePopupController): Declare formatMonth.
8066         * page/PagePopupController.idl: Add formatMonth.
8067
8068 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
8069
8070         Web Inspector: Fix new JS compiler warnings.
8071         https://bugs.webkit.org/show_bug.cgi?id=102341
8072
8073         Reviewed by Yury Semikhatsky.
8074
8075         New version of compiler finds new inconsistencies.
8076
8077         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
8078         * inspector/front-end/DOMBreakpointsSidebarPane.js:
8079         Declared instance property on WebInspector.
8080         * inspector/front-end/Script.js: Normalized parameter notation.
8081
8082 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8083
8084         Unreviewed build fix.
8085
8086         * dom/ViewportArguments.cpp:
8087         (WebCore::convertToUserSpace): Add static
8088
8089 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8090
8091         Refactor ViewportArguments to only use CSS units
8092         https://bugs.webkit.org/show_bug.cgi?id=102287
8093
8094         Reviewed by Noam Rosenthal.
8095
8096         Refactor the ViewportArgument code to use a member method for
8097         resolving the viewport. This new method only uses arguments in
8098         CSS units.
8099
8100         This is preparation for adding the CSS Device Adaptation support.
8101
8102         Tested by existing tests fast/viewport.
8103
8104         * dom/ViewportArguments.cpp:
8105         (WebCore::clampLengthValue):
8106         (WebCore::clampScaleValue): New utility functions.
8107         (WebCore::ViewportArguments::resolve):
8108         (WebCore::convertToUserSpace): Added until everyone provides arguments
8109         only in CSS units and not device ones.
8110         (WebCore::computeViewportAttributes):
8111         (WebCore::computeMinimumScaleFactorForContentContained):
8112         (WebCore):
8113         (WebCore::restrictMinimumScaleFactorToViewportSize):
8114         * dom/ViewportArguments.h:
8115         (ViewportArguments):
8116
8117 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8118
8119         Changing pseudoClass (:disabled) should cause distribution.
8120         https://bugs.webkit.org/show_bug.cgi?id=101901
8121
8122         Reviewed by Hajime Morita.
8123
8124         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8125
8126         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8127         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8128         have 'disabled' state, but we need a command element to make it 'disabled' state.
8129
8130         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8131                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8132                fast/dom/shadow/pseudoclass-update-disabled-input.html
8133                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8134                fast/dom/shadow/pseudoclass-update-disabled-option.html
8135                fast/dom/shadow/pseudoclass-update-disabled-select.html
8136                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8137
8138         * html/HTMLFormControlElement.cpp:
8139         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8140         * html/HTMLOptGroupElement.cpp:
8141         (WebCore::HTMLOptGroupElement::parseAttribute):
8142         * html/HTMLOptionElement.cpp:
8143         (WebCore::HTMLOptionElement::parseAttribute):
8144
8145 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8146
8147         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8148         and r134733.
8149         http://trac.webkit.org/changeset/134691
8150         http://trac.webkit.org/changeset/134703
8151         http://trac.webkit.org/changeset/134715
8152         http://trac.webkit.org/changeset/134716
8153         http://trac.webkit.org/changeset/134733
8154         https://bugs.webkit.org/show_bug.cgi?id=102342
8155
8156         "Broke the Apple Windows Debug and GTK builds." (Requested by
8157         dydx on #webkit).
8158
8159         * WebCore.exp.in:
8160         * bindings/js/SerializedScriptValue.h:
8161         * testing/Internals.cpp:
8162         * testing/Internals.h:
8163         (WebCore):
8164         * testing/Internals.idl:
8165
8166 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8167
8168         Not reviewed: fixing inspector tests under Qt.
8169
8170         * inspector/front-end/TestController.js:
8171         * inspector/front-end/utilities.js:
8172         (.):
8173
8174 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8175
8176         Unreviewed. Rebaselined run-bindings-tests.
8177
8178         * bindings/scripts/test/V8/V8TestNode.h:
8179         (WebCore::toV8Fast):
8180
8181 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8182
8183         Don't use temporary clip rects when hit testing
8184         https://bugs.webkit.org/show_bug.cgi?id=102329
8185
8186         Reviewed by Beth Dakin.
8187
8188         We now cache clip rects separately for painting, hit testing etc. Hit testing
8189         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8190         the scrollbars works), so we no longer every need to use temporary clip rects
8191         during hit testing.
8192
8193         Added an assertion that the scrollbar relevancy when we computed the clip rects
8194         is the same as that when using them.
8195         
8196         * rendering/RenderLayer.cpp:
8197         (WebCore::RenderLayer::hitTestLayer):
8198         (WebCore::RenderLayer::updateClipRects):
8199         * rendering/RenderLayer.h:
8200         (WebCore::ClipRectsCache::ClipRectsCache):
8201         (ClipRectsCache):
8202
8203 2012-11-14  Dirk Schulze  <krit@webkit.org>
8204
8205         Support animation of basic shape 'polygon'
8206         https://bugs.webkit.org/show_bug.cgi?id=102080
8207
8208         Reviewed by Daniel Bates.
8209
8210         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8211         patch http://trac.webkit.org/changeset/134352.
8212         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8213         of vertices between start and end polygon is the same.
8214
8215         Added polygon animation test to existing test:
8216             fast/exclusions/shape-inside/shape-inside-animation.html
8217             css3/masking/clip-path-animation.html
8218
8219         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8220         * rendering/style/BasicShapes.cpp:
8221         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8222         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8223
8224 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8225
8226         Unreviewed. Fix code generator warnings.
8227
8228         * bindings/scripts/CodeGeneratorV8.pm:
8229         (GenerateFunctionCallback):
8230         (GenerateImplementation):
8231
8232 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8233
8234         Changing pseudoClass (:checked) should cause distribution.
8235         https://bugs.webkit.org/show_bug.cgi?id=101902
8236
8237         Reviewed by Dimitri Glazkov.
8238
8239         When the 'checked' state is changed, we have to invalidate distribution.
8240
8241         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8242         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8243
8244         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8245                fast/dom/shadow/pseudoclass-update-checked-option.html
8246
8247         * html/HTMLInputElement.cpp:
8248         (WebCore::HTMLInputElement::setChecked):
8249         * html/HTMLOptionElement.cpp:
8250         (WebCore::HTMLOptionElement::setSelectedState):
8251
8252 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8253
8254         [V8] Kill $implClassName from CodeGeneratorV8.pm
8255         https://bugs.webkit.org/show_bug.cgi?id=102312
8256
8257         Reviewed by Adam Barth.
8258
8259         $implClassName and $interfaceName are the same.
8260         Sometimes we are passing both $implClassName and $interfaceName to
8261         subroutines. We can kill $implClassName.
8262
8263         No tests. No change in behavior.
8264
8265         * bindings/scripts/CodeGeneratorV8.pm:
8266         (GenerateOpaqueRootForGC):
8267         (GenerateHeader):
8268         (GenerateDomainSafeFunctionGetter):
8269         (GenerateDomainSafeFunctionSetter):
8270         (GenerateConstructorGetter):
8271         (GenerateNormalAttrGetter):
8272         (GenerateReplaceableAttrSetter):
8273         (GenerateNormalAttrSetter):
8274         (GenerateEventListenerCallback):
8275         (GenerateOverloadedFunctionCallback):
8276         (GenerateFunctionCallback):
8277         (GenerateParametersCheck):
8278         (GenerateOverloadedConstructorCallback):
8279         (GenerateSingleConstructorCallback):
8280         (GenerateConstructorCallback):
8281         (GenerateEventConstructorCallback):
8282         (GenerateTypedArrayConstructorCallback):
8283         (GenerateNamedConstructorCallback):
8284         (GenerateImplementation):
8285         (GenerateFunctionCallString):
8286
8287 2012-11-14  Adam Barth  <abarth@webkit.org>
8288
8289         [V8] We can shave one instruction off toV8Fast
8290         https://bugs.webkit.org/show_bug.cgi?id=102297
8291
8292         Reviewed by Kentaro Hara.
8293
8294         There's no reason to store info.Holder in a local variable. Calling
8295         Holder() is essentially free because it's inlined to an offset read.
8296
8297         I doubt this patch moves the performance needle in any measurable way,
8298         but it makes the code slightly prettier.
8299
8300         * bindings/scripts/CodeGeneratorV8.pm:
8301         (GenerateHeader):
8302         * bindings/scripts/test/V8/V8TestNode.h:
8303         (WebCore::toV8Fast):
8304
8305 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8306
8307         [V8] Get rid of a redundant branch in JSValueToNative()
8308         https://bugs.webkit.org/show_bug.cgi?id=102311
8309
8310         Reviewed by Adam Barth.
8311
8312         No tests. No change in behavior.
8313
8314         * bindings/scripts/CodeGeneratorV8.pm:
8315         (JSValueToNative):
8316         (NativeToJSValue):
8317
8318 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8319
8320         Changing pseudoClass (:link) should cause distribution
8321         https://bugs.webkit.org/show_bug.cgi?id=101698
8322
8323         Reviewed by Hajime Morita.
8324
8325         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8326         we have to invalidate distribution.
8327
8328         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8329
8330         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8331                fast/dom/shadow/pseudoclass-update-link-area.html
8332
8333         * html/HTMLAnchorElement.cpp:
8334         (WebCore::HTMLAnchorElement::parseAttribute):
8335
8336 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8337
8338         Remove unused functions from CodeGenerator.pm
8339         https://bugs.webkit.org/show_bug.cgi?id=102316
8340
8341         Reviewed by Adam Barth.
8342
8343         No tests. No change in behavior.
8344
8345         * bindings/scripts/CodeGenerator.pm:
8346         (GenerateCompileTimeCheckForEnumsIfNeeded):
8347
8348 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8349
8350         [BlackBerry] Update BB10 form theme.
8351         https://bugs.webkit.org/show_bug.cgi?id=100760
8352
8353         Reviewed by Rob Buis.
8354
8355         RIM PR 225755
8356         Internally Reviewed by Eli Fidler.
8357         Update checkbox, radio and menulist button style. Adjust border width
8358         and line height.
8359
8360         * platform/blackberry/RenderThemeBlackBerry.cpp:
8361         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8362         * platform/blackberry/RenderThemeBlackBerry.h:
8363         (RenderThemeBlackBerry):
8364
8365 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8366
8367         Update DOMException name: InvalidModificationError
8368         https://bugs.webkit.org/show_bug.cgi?id=102281
8369
8370         Reviewed by Kentaro Hara.
8371
8372         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8373
8374         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8375
8376         * dom/DOMCoreException.cpp:
8377
8378 2012-11-14  Adam Barth  <abarth@webkit.org>
8379
8380         document variable in Document::axObjectCache is actually the topDocument
8381         https://bugs.webkit.org/show_bug.cgi?id=101966
8382
8383         Reviewed by Chris Fleizach.
8384
8385         Name change requested by Darin Adler.
8386
8387         * dom/Document.cpp:
8388         (WebCore::Document::axObjectCache):
8389
8390 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8391
8392         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8393         https://bugs.webkit.org/show_bug.cgi?id=102271
8394
8395         Reviewed by David Kilzer.
8396
8397         Initialize the tiemout flag if the error results from a timeout
8398         in the USE(CFNETWORK) cases.
8399
8400         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8401         tests on ports that USE(CFNETWORK).
8402
8403         * platform/network/cf/ResourceErrorCF.cpp:
8404         (WebCore::ResourceError::ResourceError):
8405         * platform/network/mac/ResourceErrorMac.mm:
8406         (WebCore::ResourceError::ResourceError):
8407
8408 2012-11-14  Nico Weber  <thakis@chromium.org>
8409
8410         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8411         https://bugs.webkit.org/show_bug.cgi?id=102282
8412
8413         Reviewed by James Robinson.
8414
8415         Chromium uses skia, and skia state is synced with CG context state at
8416         LocalCurrentGraphicsContext construction time. So delay that
8417         construction after context transforms have happened.
8418         (This regressed in http://trac.webkit.org/changeset/125830)
8419
8420         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8421         couldn't find an existing test for this.
8422
8423         * platform/mac/ThemeMac.mm:
8424         (WebCore::paintCheckbox):
8425         (WebCore::paintRadio):
8426         (WebCore::paintButton):
8427
8428 2012-11-14  Mark Lam  <mark.lam@apple.com>
8429
8430         Change JSEventListener::m_jsFunction to be a weak ref.
8431         https://bugs.webkit.org/show_bug.cgi?id=101989.
8432
8433         Reviewed by Geoffrey Garen.
8434
8435         No new tests.
8436
8437         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8438         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8439         * bindings/js/JSEventListener.cpp:
8440         (WebCore::JSEventListener::JSEventListener):
8441         (WebCore::JSEventListener::visitJSFunction):
8442         (WebCore::JSEventListener::operator==):
8443          - Removed the m_wrapper checks in operator==() because they are not
8444            needed. There is no longer any threat of m_jsFunction pointing to
8445            recycled memory. The use of weak refs will ensure that m_jsFunction
8446            is either still holding on to its old memory exclusively, or is 0'ed
8447            out when the GC collects it.
8448         * bindings/js/JSEventListener.h:
8449         (JSEventListener):
8450         (WebCore::JSEventListener::jsFunction):
8451
8452 2012-11-14  Dan Carney  <dcarney@google.com>
8453
8454         [V8] Rename dispatchWrap
8455         https://bugs.webkit.org/show_bug.cgi?id=102240
8456
8457         Reviewed by Adam Barth.
8458
8459         Mostly a rename:
8460         dispatchWrap->wrap
8461         wrapSlow->createWrapper
8462         dispatchWrapCustom->wrap
8463
8464         No new tests. No change in functionality.
8465
8466         * bindings/scripts/CodeGeneratorV8.pm:
8467         (GenerateHeader):
8468         (GenerateNormalAttrGetter):
8469         (GenerateImplementation):
8470         (GenerateToV8Converters):
8471         * bindings/scripts/IDLAttributes.txt:
8472         * bindings/scripts/test/V8/V8Float64Array.cpp:
8473         (WebCore::wrap):
8474         (WebCore::V8Float64Array::createWrapper):
8475         * bindings/scripts/test/V8/V8Float64Array.h:
8476         (V8Float64Array):
8477         (WebCore):
8478         (WebCore::toV8Object):
8479         (WebCore::toV8):
8480         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8481         (WebCore::V8TestActiveDOMObject::createWrapper):
8482         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8483         (V8TestActiveDOMObject):
8484         (WebCore::wrap):
8485         (WebCore::toV8Object):
8486         (WebCore::toV8):
8487         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8488         (WebCore::V8TestCustomNamedGetter::createWrapper):
8489         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8490         (V8TestCustomNamedGetter):
8491         (WebCore::wrap):
8492         (WebCore::toV8Object):
8493         (WebCore::toV8):
8494         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8495         (WebCore::V8TestEventConstructor::createWrapper):
8496         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8497         (V8TestEventConstructor):
8498         (WebCore::wrap):
8499         (WebCore::toV8Object):
8500         (WebCore::toV8):
8501         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8502         (WebCore::V8TestEventTarget::createWrapper):
8503         * bindings/scripts/test/V8/V8TestEventTarget.h:
8504         (V8TestEventTarget):
8505         (WebCore::wrap):
8506         (WebCore::toV8Object):
8507         (WebCore::toV8):
8508         * bindings/scripts/test/V8/V8TestException.cpp:
8509         (WebCore::V8TestException::createWrapper):
8510         * bindings/scripts/test/V8/V8TestException.h:
8511         (V8TestException):
8512         (WebCore::wrap):
8513         (WebCore::toV8Object):
8514         (WebCore::toV8):
8515         * bindings/scripts/test/V8/V8TestInterface.cpp:
8516         (WebCore::V8TestInterface::createWrapper):
8517         * bindings/scripts/test/V8/V8TestInterface.h:
8518         (V8TestInterface):
8519         (WebCore::wrap):
8520         (WebCore::toV8Object):
8521         (WebCore::toV8):
8522         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8523         (WebCore::V8TestMediaQueryListListener::createWrapper):
8524         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8525         (V8TestMediaQueryListListener):
8526         (WebCore::wrap):
8527         (WebCore::toV8Object):
8528         (WebCore::toV8):
8529         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8530         (WebCore::V8TestNamedConstructor::createWrapper):
8531         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8532         (V8TestNamedConstructor):
8533         (WebCore::wrap):
8534         (WebCore::toV8Object):
8535         (WebCore::toV8):
8536         * bindings/scripts/test/V8/V8TestNode.cpp:
8537         (WebCore::V8TestNode::createWrapper):
8538         * bindings/scripts/test/V8/V8TestNode.h:
8539         (V8TestNode):
8540         (WebCore::wrap):
8541         (WebCore::toV8Object):
8542         (WebCore::toV8):
8543         (WebCore::toV8Fast):
8544         * bindings/scripts/test/V8/V8TestObj.cpp:
8545         (WebCore::V8TestObj::createWrapper):
8546         * bindings/scripts/test/V8/V8TestObj.h:
8547         (V8TestObj):
8548         (WebCore::wrap):
8549         (WebCore::toV8Object):
8550         (WebCore::toV8):
8551         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8552         (WebCore::V8TestOverloadedConstructors::createWrapper):
8553         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8554         (V8TestOverloadedConstructors):
8555         (WebCore::wrap):
8556         (WebCore::toV8Object):
8557         (WebCore::toV8):
8558         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8559         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8560         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8561         (V8TestSerializedScriptValueInterface):
8562         (WebCore::wrap):
8563         (WebCore::toV8Object):
8564         (WebCore::toV8):
8565         * bindings/v8/custom/V8BlobCustom.cpp:
8566         (WebCore::wrap):
8567         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8568         (WebCore::wrap):
8569         * bindings/v8/custom/V8CSSValueCustom.cpp:
8570         (WebCore::wrap):
8571         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8572         (WebCore::wrap):
8573         * bindings/v8/custom/V8DataViewCustom.cpp:
8574         (WebCore::wrap):
8575         * bindings/v8/custom/V8DocumentCustom.cpp:
8576         (WebCore::wrap):
8577         * bindings/v8/custom/V8ElementCustom.cpp:
8578         (WebCore):
8579         (WebCore::wrap):
8580         * bindings/v8/custom/V8EntryCustom.cpp:
8581         (WebCore::wrap):
8582         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8583         (WebCore::wrap):
8584         * bindings/v8/custom/V8EventCustom.cpp:
8585         (WebCore):
8586         (WebCore::wrap):
8587         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8588         (WebCore::wrap):
8589         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8590         (WebCore::wrap):
8591         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8592         (WebCore::wrap):
8593         * bindings/v8/custom/V8ImageDataCustom.cpp:
8594         (WebCore::wrap):
8595         * bindings/v8/custom/V8NodeCustom.cpp:
8596         (WebCore::wrap):
8597         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8598         (WebCore::wrap):
8599         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8600         (WebCore::wrap):
8601         * bindings/v8/custom/V8SVGElementCustom.cpp:
8602         (WebCore::wrap):
8603         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8604         (WebCore::wrap):
8605         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8606         (WebCore::wrap):
8607         * dom/make_names.pl:
8608         (printWrapperFunctions):
8609         (printWrapperFactoryCppFile):
8610
8611 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8612
8613         [EFL] Refactor theme to choose whether to support foreground color of selection
8614         https://bugs.webkit.org/show_bug.cgi?id=102037
8615
8616         Reviewed by Gyuyoung Kim.
8617
8618         RenderThemeEfl can change foreground color of selection using theme file.
8619         But it can not disable supports of foreground color to keep the text color
8620         which is selected.
8621
8622         This patch refactors color classes of theme file from active/inactive classes
8623         to foreground/background classes so that RenderThemeEfl checks whether
8624         theme file supports foreground color class.
8625
8626         * platform/efl/RenderThemeEfl.cpp:
8627         (WebCore::fillColorsFromEdjeClass):
8628         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8629         (WebCore::RenderThemeEfl::loadTheme):
8630         (WebCore::RenderThemeEfl::RenderThemeEfl):
8631         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8632         (WebCore):
8633         * platform/efl/RenderThemeEfl.h:
8634         (RenderThemeEfl):
8635
8636 2012-11-14  Tony Chang  <tony@chromium.org>
8637
8638         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8639         https://bugs.webkit.org/show_bug.cgi?id=102295
8640
8641         Reviewed by Andreas Kling.
8642
8643         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8644
8645         No new tests because there should be no change in behavior.
8646
8647         * css/CSSGrammar.y.in:
8648         * css/CSSParser.cpp:
8649         (WebCore::CSSParser::CSSParser):
8650         (WebCore::CSSParser::parseValue):
8651         (WebCore::CSSParser::parseColor):
8652         (WebCore::CSSParser::parseDeclaration):
8653         (WebCore):
8654         (WebCore::filterProperties):
8655         (WebCore::CSSParser::createStylePropertySet):
8656         (WebCore::CSSParser::addProperty):
8657         (WebCore::CSSParser::rollbackLastProperties):
8658         (WebCore::CSSParser::clearProperties):
8659         (WebCore::CSSParser::parse4Values):
8660         (WebCore::CSSParser::parseFlowThread):
8661         (WebCore::CSSParser::addTextDecorationProperty):
8662         (WebCore::CSSParser::createFloatingSelectorVector):
8663         (WebCore::CSSParser::sinkFloatingSelectorVector):
8664         (WebCore::CSSParser::createStyleRule):
8665         (WebCore::CSSParser::createFontFaceRule):
8666         (WebCore::CSSParser::createPageRule):
8667         (WebCore::CSSParser::setReusableRegionSelectorVector):
8668         (WebCore::CSSParser::startDeclarationsForMarginBox):
8669         (WebCore::CSSParser::endDeclarationsForMarginBox):
8670         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8671         * css/CSSParser.h:
8672         (WebCore::CSSParser::hasProperties):
8673         (WebCore::CSSParser::reusableSelectorVector):
8674         (CSSParser):
8675         (WebCore::CSSParser::reusableRegionSelectorVector):
8676         * css/CSSParserValues.cpp:
8677         (WebCore::CSSParserSelector::adoptSelectorVector):
8678         * css/CSSParserValues.h:
8679         (CSSParserSelector):
8680         * css/CSSSelectorList.cpp:
8681         (WebCore::CSSSelectorList::adoptSelectorVector):
8682         * css/CSSSelectorList.h:
8683         (CSSSelectorList):
8684         * css/SVGCSSParser.cpp:
8685         (WebCore::CSSParser::parseSVGValue):
8686         * css/StyleRule.cpp:
8687         (WebCore::StyleRuleRegion::StyleRuleRegion):
8688         * css/StyleRule.h:
8689         (WebCore::StyleRule::parserAdoptSelectorVector):
8690         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8691         (WebCore::StyleRuleRegion::create):
8692         (StyleRuleRegion):
8693
8694 2012-11-14  Alec Flett  <alecflett@chromium.org>
8695
8696         Add tests for explicit serialization values
8697         https://bugs.webkit.org/show_bug.cgi?id=96818
8698
8699         Reviewed by Adam Barth.
8700
8701         Expose direct access to the serialization/deserialization mechanisms
8702         of SerializedScriptValue to DumpRenderTree.
8703
8704         * testing/Internals.cpp:
8705         (WebCore::Internals::serializeObject):
8706         (WebCore):
8707         (WebCore::Internals::deserializeBuffer):
8708         * testing/Internals.h:
8709         (WebCore):
8710         * testing/Internals.idl:
8711
8712 2012-11-14  Michael Pruett  <michael@68k.org>
8713
8714         IndexedDB: Add clear() method to JSC ScriptValue
8715         https://bugs.webkit.org/show_bug.cgi?id=102288
8716
8717         Reviewed by Kentaro Hara.
8718
8719         IndexedDB uses the ScriptValue::clear() method, which existed
8720         previously only in the V8 implementation of ScriptValue. This
8721         change is necessary to implement IndexedDB for JSC.
8722
8723         Tests: storage/indexeddb/*
8724
8725         * bindings/js/ScriptValue.h:
8726         (WebCore::ScriptValue::clear):
8727         (ScriptValue):
8728
8729 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8730
8731         IndexedDB: Indexing tests are flaky-crashing
8732         https://bugs.webkit.org/show_bug.cgi?id=102283
8733
8734         Reviewed by Tony Chang.
8735
8736         Don't commit the transaction if there are outstanding pre-emptive events
8737         from indexing operations.
8738
8739         Speculative fix for the flakiness.
8740
8741         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8742         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8743
8744 2012-11-14  Tony Chang  <tony@chromium.org>
8745
8746         Crash in flexbox when removing absolutely positioned children
8747         https://bugs.webkit.org/show_bug.cgi?id=100465
8748
8749         Reviewed by Ojan Vafai.
8750
8751         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8752         This value gets set during flexbox layout. When we remove an absolutely
8753         positioned child, we don't relayout and this value would get stale.
8754
8755         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8756         so the value doesn't get stale when we remove absolutely positioned children.
8757         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8758         the iterator.
8759
8760         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8761
8762         * rendering/RenderFlexibleBox.cpp:
8763         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8764         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8765         (WebCore::RenderFlexibleBox::layoutBlock):
8766         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8767         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8768         * rendering/RenderFlexibleBox.h:
8769
8770 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8771
8772         IndexedDB: Remove magic numbers in record comparator, handle missing case
8773         https://bugs.webkit.org/show_bug.cgi?id=102255
8774
8775         Reviewed by Tony Chang.
8776
8777         For some ranges of metadata entries, a simple type byte comparison is sufficient
8778         for the backing store comparator. In two places those ranges used magic numbers,
8779         one of which was incorrect - which could lead to failed reads/writes.
8780
8781         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8782
8783         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8784         (IDBLevelDBCoding):
8785         (WebCore::IDBLevelDBCoding::compare):
8786         * Modules/indexeddb/IDBLevelDBCoding.h:
8787
8788 2012-11-14  Dirk Schulze  <krit@webkit.org>
8789
8790         Cleanup BasicShape blending check
8791         https://bugs.webkit.org/show_bug.cgi?id=102289
8792
8793         Reviewed by Daniel Bates.
8794
8795         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8796         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8797         is a preparation for follow-up patches.
8798
8799         Pure refactoring without behavior change, no new tests.
8800
8801         * page/animation/CSSPropertyAnimation.cpp:
8802         (WebCore::blendFunc): Call new canBlend method for blending verification.
8803         * rendering/style/BasicShapes.cpp:
8804         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8805         (WebCore):
8806         * rendering/style/BasicShapes.h:
8807
8808 2012-11-14  Dirk Schulze  <krit@webkit.org>
8809
8810         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8811         https://bugs.webkit.org/show_bug.cgi?id=102123
8812
8813         Reviewed by Antti Koivisto.
8814
8815         The '-webkit-shape-inside' propery takes a BasicShape as input like
8816         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8817         make '-webkit-shape-inside' animatable as well.
8818
8819         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8820
8821         * page/animation/CSSPropertyAnimation.cpp:
8822         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8823             input then '-webkit-clip-path'.
8824         (WebCore):
8825         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8826             '-webkit-shape-ourside' as well.
8827         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8828         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8829
8830 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8831
8832         [TexMap][Cairo] Accelerated compositing debug visuals
8833         https://bugs.webkit.org/show_bug.cgi?id=101883
8834
8835         Reviewed by Kenneth Rohde Christiansen.
8836
8837         No new tests, just introducing a debug feature.
8838
8839         Add a Cairo implementation to complement the patch from bug 90116
8840         (http://trac.webkit.org/changeset/122275).
8841
8842         For this feature to be enabled, the environment variable
8843         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8844         both repaint counters and tile borders will be painted.
8845
8846         A Cairo-specific drawRepaintCounter() implementation was added to
8847         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8848         the counters. It is then uploaded to a BitmapTexture acquired
8849         from the pool and finally draw by TextureMapper. The actual compositing
8850         happens inside LayerBackingStore::paintToTextureMapper(). Each
8851         LayerBackingStoreTile has a repaint counter which gets incremented in
8852         LayerBackingStore::updateTile().
8853
8854         * platform/graphics/texmap/TextureMapperGL.cpp:
8855         (WebCore::TextureMapperGL::drawRepaintCounter):
8856
8857 2012-11-14  Michael Pruett  <michael@68k.org>
8858
8859         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8860         https://bugs.webkit.org/show_bug.cgi?id=102268
8861
8862         Reviewed by Geoffrey Garen.
8863
8864         Add JSNoStaticTables attribute to IndexedDB interface
8865         definitions. This attribute must be specified in interfaces
8866         which can be accessed from workers.
8867
8868         Tests: storage/indexeddb/*
8869
8870         * Modules/indexeddb/IDBAny.idl:
8871         * Modules/indexeddb/IDBCursor.idl:
8872         * Modules/indexeddb/IDBCursorWithValue.idl:
8873         * Modules/indexeddb/IDBDatabase.idl:
8874         * Modules/indexeddb/IDBDatabaseException.idl:
8875         * Modules/indexeddb/IDBFactory.idl:
8876         * Modules/indexeddb/IDBIndex.idl:
8877         * Modules/indexeddb/IDBKey.idl:
8878         * Modules/indexeddb/IDBKeyRange.idl:
8879         * Modules/indexeddb/IDBObjectStore.idl:
8880         * Modules/indexeddb/IDBOpenDBRequest.idl:
8881         * Modules/indexeddb/IDBRequest.idl:
8882         * Modules/indexeddb/IDBTransaction.idl:
8883         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8884         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8885         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8886         * dom/DOMStringList.idl:
8887
8888 2012-11-14  Michael Pruett  <michael@68k.org>
8889
8890         IndexedDB: Replace int64 with int64_t
8891         https://bugs.webkit.org/show_bug.cgi?id=102270
8892
8893         Reviewed by Tony Chang.
8894
8895         Cleaning up coding inconsistencies, no change in behavior.
8896
8897         Tests: storage/indexeddb/*
8898
8899         * Modules/indexeddb/IDBDatabase.cpp:
8900         (WebCore::IDBDatabase::deleteObjectStore):
8901         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8902         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8903
8904 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8905
8906         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8907         https://bugs.webkit.org/show_bug.cgi?id=102000
8908
8909         Reviewed by Noam Rosenthal.
8910
8911         Add helper functions to clear viewport before painting. Those functions
8912         used by EFL Webkit2 port to set view background to match page background
8913         in order to reduce visibility of flicker during scrolling/scaling/repainting
8914         where page tiles are not ready.
8915
8916         * platform/graphics/texmap/TextureMapper.h:
8917         * platform/graphics/texmap/TextureMapperGL.cpp:
8918         (WebCore::TextureMapperGL::drawSolidColor):
8919         (WebCore):
8920         * platform/graphics/texmap/TextureMapperGL.h:
8921         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8922         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8923         (WebCore):
8924         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8925
8926 2012-11-14  Mark Lam  <mark.lam@apple.com>
8927
8928         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8929         https://bugs.webkit.org/show_bug.cgi?id=102183.
8930
8931         Reviewed by Geoffrey Garen.
8932
8933         Fixed JSEventListener::operator==() to work within the contract that
8934         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8935         some typos in comments.
8936
8937         No new tests.
8938
8939         * bindings/js/JSEventListener.cpp:
8940         (WebCore::JSEventListener::visitJSFunction):
8941         (WebCore::JSEventListener::operator==):
8942         * bindings/js/JSEventListener.h:
8943         (WebCore::JSEventListener::jsFunction):
8944
8945 2012-11-14  Nate Chapin  <japhet@chromium.org>
8946
8947         Fix chromium asserts from r134649.
8948
8949         Rubber-stamped by Adam Barth.
8950
8951         MainResourceLoader was calling releaseResources() twice when cancelled
8952         within MainResourceLoader::load(), so check reachedTerminalState() before
8953         calling releaseResources() there.
8954
8955         * loader/MainResourceLoader.cpp:
8956         (WebCore::MainResourceLoader::load):
8957
8958 2012-11-14  Andreas Kling  <kling@webkit.org>
8959
8960         Only resolve presentation attribute style once per shared ElementAttributeData.
8961         <http://webkit.org/b/100990>
8962
8963         Reviewed by Antti Koivisto.
8964
8965         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
8966         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
8967         since the state is no longer per-Element.
8968
8969         I've left the presentation attribute cache in there for now, since it still covers the case where
8970         two elements have the same presentation attributes but different non-presentation attributes.
8971         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
8972
8973         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
8974         * dom/StyledElement.h:
8975         (WebCore::StyledElement::presentationAttributeStyle):
8976         (WebCore::ElementAttributeData::ElementAttributeData):
8977         * dom/ElementAttributeData.h:
8978         (WebCore::ElementAttributeData::ElementAttributeData):
8979         (ElementAttributeData):
8980         * dom/Node.h:
8981
8982             Move presentation attribute style dirty flag from Node to ElementAttributeData.
8983
8984         * dom/ElementAttributeData.cpp:
8985         (SameSizeAsElementAttributeData):
8986
8987             Add a compile-time object size assertion for ElementAttributeData.
8988
8989         * dom/StyledElement.cpp:
8990         (WebCore::StyledElement::attributeChanged):
8991
8992             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
8993             shared) ElementAttributeData and another element has already generated the StylePropertySet.
8994             The element itself is still marked for style recalc like before, this just avoids the process
8995             of converting the attributes to CSS properties.
8996
8997 2012-11-14  Scott Violet  <sky@chromium.org>
8998
8999         [Chromium] Refactor theme font lookup into a factory
9000         https://bugs.webkit.org/show_bug.cgi?id=101949
9001
9002         Reviewed by Tony Chang.
9003
9004         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
9005
9006         No new tests. Refactoring only.
9007
9008         * WebCore.gyp/WebCore.gyp:
9009         * WebCore.gypi:
9010         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
9011         (WebCore):
9012         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
9013         * rendering/RenderThemeChromiumFontProvider.h: Added.
9014         (WTF):
9015         (WebCore):
9016         (RenderThemeChromiumFontProvider): This is the font related methods.
9017         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
9018         (WebCore):
9019         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
9020         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
9021         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
9022         (WebCore):
9023         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
9024         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
9025         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
9026         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
9027         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
9028         * rendering/RenderThemeChromiumSkia.cpp:
9029         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
9030         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
9031         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
9032         * rendering/RenderThemeChromiumSkia.h:
9033         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
9034         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
9035         (WebCore):
9036         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
9037         (RenderThemeChromiumWin):
9038
9039 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9040
9041         Update DOMException name: InUseAttributeError
9042         https://bugs.webkit.org/show_bug.cgi?id=102141
9043
9044         Reviewed by Ojan Vafai.
9045
9046         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
9047
9048         The name for this is not in the spec but the case was selected to match
9049         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
9050
9051         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
9052
9053         * dom/DOMCoreException.cpp:
9054         * dom/ExceptionCode.h:
9055
9056 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
9057
9058         [WinCairo] Incorrect line-height for styled menulist (select tag)
9059         in windows theme.
9060         https://bugs.webkit.org/show_bug.cgi?id=79435
9061
9062         Reviewed by Brent Fulgham
9063
9064         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
9065         to Windows theme to fix issue.
9066
9067         Tests: fast/forms/menulist-restrict-line-height.html
9068                fast/forms/control-restrict-line-height.html
9069                fast/forms/basic-selects.html
9070
9071         * rendering/RenderThemeWin.cpp:
9072         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
9073         height to the correct initial height.
9074
9075 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9076
9077         Update DOMException name: WrongDocumentError
9078         https://bugs.webkit.org/show_bug.cgi?id=102096
9079
9080         Reviewed by Ojan Vafai.
9081
9082         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
9083
9084         Updated existing tests.
9085
9086         * dom/DOMCoreException.cpp:
9087
9088 2012-11-14  Nate Chapin  <japhet@chromium.org>
9089
9090         Move empty loading to DocumentLoader, simplify FrameLoader::init()
9091         https://bugs.webkit.org/show_bug.cgi?id=101512
9092
9093         Reviewed by Adam Barth.
9094
9095         No new tests, though several outputs changed because we no longer send resource
9096             load callbacks for empty loads.
9097
9098         * loader/DocumentLoader.cpp:
9099         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9100             loads directly here.
9101         * loader/DocumentLoader.h:
9102         * loader/FrameLoader.cpp:
9103         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9104             were previously being reset in init(). Given that the FrameLoader is in
9105             an inconsistent state before init() is called anyway, there doesn't seem
9106             to be a disadvantage to just initializing them to their post-init() values.
9107         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9108             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9109         * loader/FrameLoaderStateMachine.cpp:
9110         * loader/FrameLoaderStateMachine.h:
9111         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9112         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9113             load got deferred, which won't happen now. Return void and always treat
9114             as returning false.
9115         * loader/MainResourceLoader.h:
9116
9117 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9118
9119         Update DOMException name: InvalidStateError
9120         https://bugs.webkit.org/show_bug.cgi?id=102241
9121
9122         Reviewed by Ojan Vafai.
9123
9124         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9125
9126         Updated existing tests.
9127
9128         * dom/DOMCoreException.cpp:
9129
9130 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9131
9132         Rename NATIVE_TYPE_ERR to TypeError
9133         https://bugs.webkit.org/show_bug.cgi?id=102114
9134
9135         Reviewed by Kentaro Hara.
9136
9137         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9138         V8 binding code had colliding enum members, which required prefixing.
9139
9140         No new tests - just internal renames.
9141
9142         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9143         (WebCore::IDBCursor::advance):
9144         (WebCore::IDBCursor::stringToDirection):
9145         (WebCore::IDBCursor::directionToString):
9146         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9147         (WebCore::IDBDatabase::setVersion):
9148         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9149         (WebCore::IDBFactory::open):
9150         (WebCore::IDBFactory::openInternal):
9151         (WebCore::IDBFactory::deleteDatabase):
9152         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9153         (WebCore::IDBObjectStore::createIndex):
9154         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9155         (WebCore::IDBTransaction::stringToMode):
9156         (WebCore::IDBTransaction::modeToString):
9157         * bindings/js/JSDOMBinding.cpp: Ditto.
9158         (WebCore::setDOMException):
9159         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9160         (WebCore::DateExtension::OnSleepDetected):
9161         * bindings/v8/NPV8Object.cpp: Ditto.
9162         (_NPN_SetException):
9163         * bindings/v8/V8Binding.cpp: Ditto.
9164         (WebCore::throwError):
9165         (WebCore::handleMaxRecursionDepthExceeded):
9166         * bindings/v8/V8Binding.h: Ditto.
9167         (WebCore):
9168         * bindings/v8/V8NPObject.cpp: Ditto.
9169         (WebCore::npObjectInvokeImpl):
9170         (WebCore::npObjectGetProperty):
9171         (WebCore::npObjectSetProperty):
9172         (WebCore::npObjectPropertyEnumerator):
9173         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9174         (WebCore::V8ThrowException::setDOMException):
9175         (WebCore::V8ThrowException::throwError):
9176         (WebCore::V8ThrowException::throwTypeError):
9177         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9178         * bindings/v8/V8ThrowException.h:
9179         (V8ThrowException):
9180         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9181         (WebCore::WorkerContextExecutionProxy::evaluate):
9182         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9183         (WebCore::V8ArrayBuffer::constructorCallback):
9184         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9185         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9186         (WebCore::constructWebGLArray):
9187         (WebCore::setWebGLArrayHelper):
9188         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9189         (WebCore::V8AudioContext::constructorCallback):
9190         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9191         (WebCore::V8Blob::constructorCallback):
9192         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9193         (WebCore::V8Clipboard::clearDataCallback):
9194         (WebCore::V8Clipboard::setDragImageCallback):
9195         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9196         (WebCore::V8DOMFormData::appendCallback):
9197         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9198         (WebCore::V8SQLResultSetRowList::itemCallback):
9199         * dom/ExceptionCode.h: Add WebIDL exception types.
9200
9201 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9202
9203         [BlackBerry] Style BB10 time input field font.
9204         https://bugs.webkit.org/show_bug.cgi?id=102260.
9205
9206         Reviewed by Rob Buis.
9207
9208         RIM PR 243355
9209         Adjust time input field font using BB10 system default font.
9210
9211         * css/themeBlackBerry.css:
9212         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9213
9214 2012-11-14  Li Yin  <li.yin@intel.com>
9215
9216         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9217         https://bugs.webkit.org/show_bug.cgi?id=102173
9218
9219         Reviewed by Chris Rogers.
9220
9221         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9222         The specified value must be greater than zero and less than three minutes or a
9223         NOT_SUPPORTED_ERR exception will be thrown.
9224
9225         Tests: webaudio/delaynode-maxdelaylimit.html
9226
9227         * Modules/webaudio/AudioContext.cpp:
9228         (WebCore::AudioContext::createDelay):
9229         * Modules/webaudio/AudioContext.h:
9230         (AudioContext):
9231         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9232         * Modules/webaudio/DelayNode.cpp:
9233         (WebCore):
9234         (WebCore::DelayNode::DelayNode):
9235         * Modules/webaudio/DelayNode.h:
9236         (WebCore::DelayNode::create):
9237         (DelayNode):
9238
9239 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9240
9241         Don't pass a paintingRoot when painting from RenderLayerBacking
9242         https://bugs.webkit.org/show_bug.cgi?id=102256
9243
9244         Reviewed by David Hyatt.
9245
9246         The 'paintingRoot' parameter to the RenderLayer paint functions
9247         is used when painting just a subtree (e.g. when painting dragged
9248         selections). There is no need to pass it when a RenderLayerBacking
9249         paints its contents or overlay scrollbars.
9250         
9251         Passing it requires an expensive isDescendant() check, so passing
9252         null is more efficient.
9253         
9254         * rendering/RenderLayer.h:
9255         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9256         * rendering/RenderLayerBacking.cpp:
9257         (WebCore::RenderLayerBacking::paintIntoLayer):
9258         (WebCore::RenderLayerBacking::paintContents):
9259         * rendering/RenderLayerBacking.h:
9260         (RenderLayerBacking):
9261
9262 2012-11-14  Alec Flett  <alecflett@chromium.org>
9263
9264         Add DOMRequestState to maintain world/ScriptExecutionContext state
9265         https://bugs.webkit.org/show_bug.cgi?id=102102
9266
9267         Reviewed by Adam Barth.
9268
9269         Introduce DOMRequestState, and convert IndexedDB over.
9270
9271         No new tests, this is an abstraction layer for existing code.
9272
9273         * Modules/indexeddb/IDBRequest.cpp:
9274         (WebCore::IDBRequest::IDBRequest):
9275         (WebCore::IDBRequest::onSuccess):
9276         (WebCore::IDBRequest::dispatchEvent):
9277         * Modules/indexeddb/IDBRequest.h:
9278         (IDBRequest):
9279         * WebCore.gypi:
9280         * bindings/v8/DOMRequestState.h: Added.
9281         (WebCore):
9282         (DOMRequestState):
9283         (WebCore::DOMRequestState::DOMRequestState):
9284         (Scope):
9285         (WebCore::DOMRequestState::Scope::Scope):
9286         (WebCore::DOMRequestState::scope):
9287
9288 2012-11-14  Justin Novosad  <junov@google.com>
9289
9290         Boxes with rounded corners and thin borders are too slow to draw
9291         https://bugs.webkit.org/show_bug.cgi?id=101974
9292
9293         Reviewed by Simon Fraser.
9294
9295         With the current implementation RenderBox::
9296         determineBackgroundBleedAvoidance() uses the slow path
9297         BackgroundBleedUseTransparencyLayer for some very common use cases,
9298         notably for drawing rectangles with rounded corners that have thin
9299         borders. This is because the BackgroundBleedShrinkBackground
9300         strategy requires a border at least two pixels wide on all sides. This
9301         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9302         This approach consists in drawing the border first, with an inset inner
9303         edge (for anti-aliased compositing to work well).  This approach only
9304         works with opaque solid edges and opaque single-layer backgrounds.
9305         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9306         we save two clipPath, one save and one saveLayer on the
9307         GraphicsContext. This patch gets good coverage from existing layout
9308         tests. One additional test was added to exercise mitring, thick edges
9309         and anti-aliasing edge cases under the new painting algorithm.
9310
9311         Test: fast/borders/border-radius-wide-border-05.html
9312
9313         * rendering/RenderBox.cpp:
9314         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9315         Added selection criteria for BackgroundOverBorder
9316         (WebCore::RenderBox::paintBoxDecorations):
9317         Added a preliminary paintBorder pass for BackgroundOverBorder
9318         (WebCore::RenderBox::paintBackground):
9319         Insetting the background to to innerBorder when bleedAvoidance is
9320         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9321         Opaque solid edges.
9322         (WebCore):
9323         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9324         Utility method use by determineBackgroundBleedAvoidance to test the
9325         background's eligibility for BackgroundOverBorder bleed avoidance
9326         strategy.  The reason the background must be a single layer is to avoid
9327         color bleeding from layer compositing along anti-aliased edges
9328         * rendering/RenderBox.h:
9329         (RenderBox):
9330         * rendering/RenderBoxModelObject.cpp:
9331         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9332         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9333         Added support for BackgroundOverBorder by applying a one pixel inset.
9334         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9335         Set the background rect to the inner border for BackgroundOverBorder
9336         (WebCore):
9337         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9338         Added support for BackgroundOverBorder by using 
9339         backgroundRoundedRectAdjustedForBleedAvoidance
9340         (WebCore::RenderBoxModelObject::paintBorderSides):
9341         Added support for BackgroundOverBorder by applying per-side inset
9342         adjustments.
9343         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9344         (WebCore::RenderBoxModelObject::paintBorder):
9345         Added support for BackgroundOverBorder by using an adjusted inner
9346         border, but not if sides are painted individually.
9347         * rendering/RenderBoxModelObject.h:
9348         (RenderBoxModelObject):
9349
9350 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9351
9352         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9353         https://bugs.webkit.org/show_bug.cgi?id=76219
9354
9355         Reviewed by Brent Fulgham.
9356
9357         This patch is to fix a memory leak problem which occurs
9358         in every rendering process on Wincairo port.
9359         By applying this patch, the memory allocated in cairo 
9360         library will be released by calling cairo_destroy.
9361
9362         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9363         (WebCore::GraphicsContext::platformInit):
9364
9365 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9366
9367         Optimize painting of composited scrolling layers
9368         https://bugs.webkit.org/show_bug.cgi?id=96087
9369
9370         Reviewed by Simon Fraser.
9371
9372         Don't completely repaint accelerated scrolling layers when the scroll offset
9373         changes.
9374
9375         Test: compositing/overflow/scrolling-without-painting.html
9376
9377         * platform/graphics/GraphicsLayer.cpp:
9378         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9379         * platform/graphics/GraphicsLayer.h:
9380         (GraphicsLayer):
9381         * rendering/RenderLayerBacking.cpp:
9382         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9383
9384 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9385
9386         Web Inspector: keep track of mutation observers and disconnect them upon upload
9387         https://bugs.webkit.org/show_bug.cgi?id=102239
9388
9389         Reviewed by Vsevolod Vlasov.
9390
9391         Otherwise we hit memory leaks.
9392
9393         * inspector/front-end/DefaultTextEditor.js:
9394         (WebInspector.DefaultTextEditor.prototype.wasShown):
9395         (WebInspector.DefaultTextEditor.prototype.willHide):
9396         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9397         (WebInspector.TextEditorMainPanel.prototype._willHide):
9398         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9399         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9400         * inspector/front-end/utilities.js:
9401
9402 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9403
9404         [Qt] Use a node image if there is no drag image set for Drag&Drop
9405         https://bugs.webkit.org/show_bug.cgi?id=102124
9406
9407         Reviewed by Simon Hausmann.
9408
9409         Use the nodeImage provided by the frame if there is no dragImage in
9410         the clipboard for the current drag&drop operation.
9411
9412         * platform/qt/ClipboardQt.cpp:
9413         (WebCore::ClipboardQt::createDragImage):
9414
9415 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9416
9417         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9418         https://bugs.webkit.org/show_bug.cgi?id=101846
9419
9420         Reviewed by Simon Fraser.
9421
9422         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9423         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9424         enclosing filter layer.
9425
9426         No new tests. We now avoid a filters related code path for a performance improvement when
9427         we're not using filters.
9428
9429         * page/FrameView.cpp:
9430         (WebCore::FrameView::FrameView):
9431         * page/FrameView.h:
9432         (FrameView):
9433         (WebCore::FrameView::setHasSoftwareFilters):
9434         (WebCore::FrameView::hasSoftwareFilters):
9435         * rendering/RenderLayer.cpp:
9436         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9437         * rendering/RenderObject.cpp:
9438         (WebCore::RenderObject::containerForRepaint):
9439
9440 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9441
9442         Update DOMException name: NotFoundError
9443         https://bugs.webkit.org/show_bug.cgi?id=102137
9444
9445         Reviewed by Ojan Vafai.
9446
9447         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9448
9449         Updated existing tests.
9450
9451         * dom/DOMCoreException.cpp:
9452
9453 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9454
9455         [BlackBerry] Updating BB Cookie database to use WAL
9456         https://bugs.webkit.org/show_bug.cgi?id=102237
9457
9458         Reviewed by Rob Buis.
9459
9460         The cookie database is accessed by one process only and should be updated to
9461         use the WAL journal mode for better I/O performance.
9462
9463         PR 236553
9464
9465         cookieCollection.db-wal is created after the conversion to WAL.
9466         Tested cookie persistence by logging on to random sites and restarting the browser and
9467         check if it automatically logs in.
9468         Also tested using Opera's cookie persistence test.
9469
9470         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9471         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9472
9473 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9474
9475         Update DOMException name: IndexSizeError
9476         https://bugs.webkit.org/show_bug.cgi?id=102087
9477
9478         Reviewed by Ojan Vafai.
9479
9480         This is the first in a series of updates to DOMException name to match
9481         the spec and Firefox.
9482
9483         Patch 1 of 25
9484
9485         Updated existing tests.
9486
9487         * dom/DOMCoreException.cpp:
9488         (WebCore):
9489
9490 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9491
9492         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9493         https://bugs.webkit.org/show_bug.cgi?id=102205
9494
9495         Reviewed by Csaba Osztrogonác.
9496
9497         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9498
9499         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9500         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9501         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9502         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9503
9504 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9505
9506         Update DOMException name: NoDataAllowedError
9507         https://bugs.webkit.org/show_bug.cgi?id=102132
9508
9509         Reviewed by Darin Adler.
9510
9511         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9512
9513         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9514
9515         * dom/DOMCoreException.cpp:
9516         (WebCore):
9517         * dom/ExceptionCode.h:
9518
9519 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9520
9521         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9522         https://bugs.webkit.org/show_bug.cgi?id=102219
9523
9524         Reviewed by Alexander Pavlov.
9525
9526         Force elements module load upon context menu invocation.
9527
9528         * inspector/front-end/ElementsTreeOutline.js:
9529         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9530         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9531
9532 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9533
9534         Unreviewed, rolling out r134523.
9535         http://trac.webkit.org/changeset/134523
9536         https://bugs.webkit.org/show_bug.cgi?id=102218
9537
9538         brake chrome windows build, as it references a non existing
9539         header js/DOMRequestState.h (Requested by jochen__ on
9540         #webkit).
9541
9542         * Modules/indexeddb/IDBCursor.cpp:
9543         (WebCore::IDBCursor::setValueReady):
9544         * Modules/indexeddb/IDBCursor.h:
9545         (IDBCursor):
9546         * Modules/indexeddb/IDBRequest.cpp:
9547         (WebCore::IDBRequest::IDBRequest):
9548         (WebCore::IDBRequest::onSuccess):
9549         (WebCore::IDBRequest::stop):
9550         (WebCore::IDBRequest::dispatchEvent):
9551         * Modules/indexeddb/IDBRequest.h:
9552         (IDBRequest):
9553         * WebCore.gypi:
9554         * bindings/v8/DOMRequestState.h: Removed.
9555         * bindings/v8/IDBBindingUtilities.cpp:
9556         (WebCore::deserializeIDBValue):
9557         (WebCore::idbKeyToScriptValue):
9558         * bindings/v8/IDBBindingUtilities.h:
9559         (WebCore):
9560
9561 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9562
9563         Add platform implementation of remote web inspector server for GTK port.
9564         https://bugs.webkit.org/show_bug.cgi?id=88094 
9565
9566         Reviewed by Gustavo Noronha Silva.
9567
9568         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9569         Needed to pass remote inspector server socket connection. The change is tested with 
9570         inspector server API tests.
9571
9572         * platform/network/soup/SocketStreamHandle.h:
9573         (WebCore::SocketStreamHandle::create):
9574         (SocketStreamHandle):
9575         * platform/network/soup/SocketStreamHandleSoup.cpp:
9576         (WebCore::SocketStreamHandle::SocketStreamHandle):
9577         (WebCore):
9578         (WebCore::SocketStreamHandle::connected):
9579         (WebCore::SocketStreamHandle::platformSend):
9580         (WebCore::SocketStreamHandle::platformClose):
9581
9582 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9583
9584         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9585         https://bugs.webkit.org/show_bug.cgi?id=102212
9586
9587         Reviewed by Vsevolod Vlasov.
9588
9589         * inspector/front-end/ObjectPropertiesSection.js:
9590         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9591
9592 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9593
9594         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9595         They use about 16Mb for shared data on pages with webaudio.
9596         As example Angry Birds app.
9597         https://bugs.webkit.org/show_bug.cgi?id=101729
9598
9599         Reviewed by Yury Semikhatsky.
9600
9601         Plain vanilla instrumentation for audio and webaudio classes.
9602         AudioContext is a kind of ActiveDOMObject. I found that these objects
9603         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9604         is an ancestor of Document. Document class was instrumented earler.
9605         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9606         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9607
9608         Test: inspector-protocol/nmi-webaudio.html
9609
9610         * Modules/webaudio/AudioContext.cpp:
9611         (WebCore::AudioContext::reportMemoryUsage):
9612         (WebCore):
9613         * Modules/webaudio/AudioContext.h:
9614         (AudioContext):
9615         * Modules/webaudio/AudioNode.cpp:
9616         (WebCore::AudioNode::reportMemoryUsage):
9617         (WebCore):
9618         * Modules/webaudio/AudioNode.h:
9619         (AudioNode):
9620         * dom/ActiveDOMObject.cpp:
9621         (WebCore::ActiveDOMObject::reportMemoryUsage):
9622         (WebCore):
9623         * dom/ActiveDOMObject.h:
9624         (ActiveDOMObject):
9625         * dom/Document.cpp:
9626         (WebCore::Document::reportMemoryUsage):
9627         * dom/ScriptExecutionContext.cpp:
9628         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9629         (WebCore):
9630         * dom/ScriptExecutionContext.h:
9631         (ScriptExecutionContext):
9632         * dom/SecurityContext.cpp:
9633         (WebCore::SecurityContext::reportMemoryUsage):
9634         (WebCore):
9635         * dom/SecurityContext.h:
9636         (SecurityContext):
9637         * dom/WebCoreMemoryInstrumentation.cpp:
9638         (WebCore):
9639         * dom/WebCoreMemoryInstrumentation.h:
9640         (WebCoreMemoryTypes):
9641         * platform/audio/AudioArray.h:
9642         (AudioArray):
9643         (WebCore::AudioArray::reportMemoryUsage):
9644         * platform/audio/FFTFrame.cpp:
9645         (WebCore::FFTFrame::reportMemoryUsage):
9646         (WebCore):
9647         * platform/audio/FFTFrame.h:
9648         (FFTFrame):
9649         * platform/audio/HRTFDatabase.cpp:
9650         (WebCore::HRTFDatabase::reportMemoryUsage):
9651         (WebCore):
9652         * platform/audio/HRTFDatabase.h:
9653         (HRTFDatabase):
9654         * platform/audio/HRTFDatabaseLoader.cpp:
9655         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9656         (WebCore):
9657         * platform/audio/HRTFDatabaseLoader.h:
9658         (HRTFDatabaseLoader):
9659         * platform/audio/HRTFElevation.cpp:
9660         (WebCore::HRTFElevation::reportMemoryUsage):
9661         (WebCore):
9662         * platform/audio/HRTFElevation.h:
9663         (HRTFElevation):
9664         * platform/audio/HRTFKernel.cpp:
9665         (WebCore::HRTFKernel::reportMemoryUsage):
9666         (WebCore):
9667         * platform/audio/HRTFKernel.h:
9668         (HRTFKernel):
9669
9670 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9671
9672         Web Inspector: Settings screen: close button overlays view title on mac.
9673         https://bugs.webkit.org/show_bug.cgi?id=102198
9674
9675         Reviewed by Pavel Feldman.
9676
9677         Added margin-left for mac. Adjusted title height and vertical positioning.
9678
9679         * inspector/front-end/helpScreen.css:
9680         (.help-window-caption): Adjusted title height.
9681         (.help-window-title): Adjusted title vertical positioning. 
9682         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9683
9684 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9685
9686         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9687         https://bugs.webkit.org/show_bug.cgi?id=101905
9688
9689         Reviewed by Vsevolod Vlasov.
9690
9691         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9692         This change adds signals from the last selection and keyboard events in order to
9693         further improve the heuristics quality.
9694
9695         * inspector/front-end/DefaultTextEditor.js:
9696         (WebInspector.DefaultTextEditor):
9697         (WebInspector.DefaultTextEditor.EditInfo):
9698         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9699         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9700         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9701         (WebInspector.DefaultTextEditor.prototype.wasShown):
9702         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9703         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9704         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9705         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9706         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9707         * inspector/front-end/TextEditorModel.js:
9708         (WebInspector.TextRange.prototype.compareTo):
9709         (WebInspector.TextRange.prototype.shift):
9710         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9711
9712 2012-11-14  Dan Carney  <dcarney@google.com>
9713
9714         [V8] use toV8Fast in all relevant Node getters
9715         https://bugs.webkit.org/show_bug.cgi?id=100851
9716
9717         Reviewed by Kentaro Hara.
9718
9719         The toV8Fast function for Node objects is now called in all getters
9720         instead of toV8.
9721
9722         No new tests. Test coverage extensive.
9723
9724         * bindings/scripts/CodeGeneratorV8.pm:
9725         (GenerateHeader):
9726         (GenerateNormalAttrGetter):
9727         (IsDOMNodeType):
9728         * bindings/scripts/test/V8/V8TestNode.h:
9729         (WebCore::toV8Fast):
9730
9731 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9732
9733         Clean up use of adjustWindowRect
9734         https://bugs.webkit.org/show_bug.cgi?id=102072
9735
9736         Reviewed by Gyuyoung Kim.
9737
9738         Tested by fast/dom/Window/open-window-min-size.html
9739
9740         * loader/FrameLoader.cpp:
9741         (WebCore::createWindow):
9742
9743             Validate the window size here so that it is not just done for
9744             .open, but also for .showModalDialog. This is compatible with
9745             other browsers such as IE and Firefox (though IE > 6, enforces
9746             a minimum width of 250 instead of 100 as Firefox and us.)
9747
9748         * page/DOMWindow.cpp:
9749         (WebCore):
9750         (WebCore::DOMWindow::adjustWindowRect):
9751
9752             Make it a static method which only takes page. It was never
9753             called from anywhere without a valid page, so the page check
9754             has been turned into an assert, and two of the arguments have
9755             been removed as they can be accessed via the page.
9756
9757         (WebCore::DOMWindow::moveBy):
9758         (WebCore::DOMWindow::moveTo):
9759         (WebCore::DOMWindow::resizeBy):
9760         (WebCore::DOMWindow::resizeTo):
9761
9762             Update use of adjustWindowRect.
9763
9764         (WebCore::DOMWindow::open):
9765
9766             Avoid modifying the WindowFeatures as the WebCore::createWindow
9767             validates and adjusts the arguments.
9768
9769         * page/DOMWindow.h:
9770         (DOMWindow):
9771
9772 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9773
9774         Crash when replacing parts of text inputs with content: url(...)
9775         https://bugs.webkit.org/show_bug.cgi?id=101133
9776
9777         Reviewed by Kent Tamura.
9778
9779         Disable directly setting content of elements in an input element's
9780         shadow dom tree, because the setting breaks input element's behavior.
9781
9782         Tests: fast/forms/number/number-content-url-crash.html
9783                fast/forms/search/search-content-url-crash.html
9784
9785         * css/html.css:
9786         (input::-webkit-textfield-decoration-container):
9787         Use important to disable overriding an input element's content
9788         property.
9789         * html/TextFieldInputType.cpp:
9790         (WebCore::TextFieldInputType::attach):
9791         Added ASSERTION. No content should be applied to
9792         input::-webkit-textfield-decoration-container.
9793
9794 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9795
9796         Unreviewed. Rebaselined run-bindings-tests results.
9797
9798         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9799         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9800         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9801         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9802         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9803         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9804
9805 2012-11-14  Anton Muhin  <antonm@chromium.org>
9806
9807         Provide return types for custom WebGLRenderingContext methods
9808         https://bugs.webkit.org/show_bug.cgi?id=100777
9809
9810         Reviewed by Kenneth Russell.
9811
9812         No new tests as doesn't change generated code.
9813
9814         * html/canvas/WebGLRenderingContext.idl:
9815
9816 2012-11-14  Kent Tamura  <tkent@chromium.org>
9817
9818         Support for localization tests of calendar picker
9819         https://bugs.webkit.org/show_bug.cgi?id=102181
9820
9821         Reviewed by Kentaro Hara.
9822
9823         Introduce DateTimeChooserParameters::locale to inform locale to
9824         DateTimeChooser implementations. However we pass defaultLanguage
9825         unless tests calls internals.settings.
9826         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9827
9828         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9829
9830         * html/HTMLInputElement.cpp:
9831         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9832         Set DateTimeChooserParameters::locale up.
9833         * platform/DateTimeChooser.h:
9834         (DateTimeChooserParameters): Add 'locale' member.
9835
9836 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9837
9838         Web Inspector: highlight is not updating as one edits CSS properties
9839         https://bugs.webkit.org/show_bug.cgi?id=102191
9840
9841         Reviewed by Alexander Pavlov.
9842
9843         We should update highlight upon layout / style recalculation.
9844
9845         * inspector/InspectorInstrumentation.cpp:
9846         (WebCore):
9847         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9848         * inspector/InspectorPageAgent.cpp:
9849         (WebCore::InspectorPageAgent::InspectorPageAgent):
9850         (WebCore::InspectorPageAgent::enable):
9851         (WebCore::InspectorPageAgent::disable):
9852         (WebCore::InspectorPageAgent::domContentEventFired):
9853         (WebCore::InspectorPageAgent::didPaint):
9854         (WebCore::InspectorPageAgent::didLayout):
9855         (WebCore::InspectorPageAgent::didScroll):
9856         (WebCore):
9857         (WebCore::InspectorPageAgent::didRecalculateStyle):
9858         * inspector/InspectorPageAgent.h:
9859
9860 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9861
9862         Unreviewed, rolling out r134566.
9863         http://trac.webkit.org/changeset/134566
9864         https://bugs.webkit.org/show_bug.cgi?id=102197
9865
9866         "it broke Chromium Android Release build" (Requested by
9867         haraken on #webkit).
9868
9869         * html/HTMLInputElement.cpp:
9870         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9871         * platform/DateTimeChooser.h:
9872         (DateTimeChooserParameters):
9873
9874 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9875
9876         Web Inspector: No content available for requests made from flash
9877         https://bugs.webkit.org/show_bug.cgi?id=101560
9878
9879         Reviewed by Pavel Feldman.
9880
9881         Network request data is now saved to inspector cache in following cases:
9882          - Error status code;
9883          - No cached resource available;
9884          - Cached resource has ShouldNotBufferData option set.
9885         Drive-by: refactored didReceiveResponse logic to be clearer.
9886
9887         * inspector/InspectorResourceAgent.cpp:
9888         (WebCore::InspectorResourceAgent::didReceiveResponse):
9889         (WebCore::InspectorResourceAgent::didReceiveData):
9890         * loader/cache/CachedResource.h:
9891         (WebCore::CachedResource::shouldBufferData):
9892
9893 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9894
9895         Changing pseudoClass (:target) should cause distribution
9896         https://bugs.webkit.org/show_bug.cgi?id=101699
9897
9898         Reviewed by Hajime Morita.
9899
9900         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9901         by consulting with SelectRuleFeatureSet.
9902
9903         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9904
9905         Test: fast/dom/shadow/pseudoclass-update-target.html
9906
9907         * dom/Document.cpp:
9908         (WebCore::Document::setCSSTarget):
9909         * dom/ElementShadow.cpp:
9910         (WebCore::invalidateParentDistributionIfNecessary):
9911         (WebCore):
9912         * dom/ElementShadow.h:
9913         (WebCore):
9914         * html/shadow/SelectRuleFeatureSet.h:
9915         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9916         (SelectRuleFeatureSet):
9917
9918 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9919
9920         [V8] DOM wrapper objects should be collected in minor GC cycles
9921         https://bugs.webkit.org/show_bug.cgi?id=98725
9922
9923         Reviewed by Adam Barth.
9924
9925         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9926         have to survive two minor GC cycles, be promoted to the old space
9927         and wait for a heavy major GC cycle.
9928
9929         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9930         For real world applications, I confirmed that minor GC cycles
9931         reclaims a substantial amount of memory (24 MB for Facebook,
9932         235 MB for Google Calendar) with acceptable overhead (~10 ms
9933         per minor GC cycle). No performance regression in Dromaeo
9934         DOM tests.
9935
9936         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9937         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9938         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9939
9940         * bindings/v8/IntrusiveDOMWrapperMap.h:
9941         (WebCore::IntrusiveDOMWrapperMap::set):
9942         * bindings/v8/V8DOMWindowShell.cpp:
9943         (WebCore::initializeV8IfNeeded):
9944         * bindings/v8/V8GCController.cpp:
9945         (WebCore):
9946         (WebCore::gcTree):
9947         (WebCore::V8GCController::newWrapperBorn):
9948         (WebCore::V8GCController::gcPrologue):
9949         (WebCore::V8GCController::minorGCPrologue):
9950         (WebCore::V8GCController::majorGCPrologue):
9951         (WebCore::V8GCController::gcEpilogue):
9952         (WebCore::V8GCController::minorGCEpilogue):
9953         (WebCore::V8GCController::majorGCEpilogue):
9954         * bindings/v8/V8GCController.h:
9955         (WebCore):
9956         (V8GCController):
9957         * bindings/v8/WorkerContextExecutionProxy.cpp:
9958         (WebCore::WorkerContextExecutionProxy::initIsolate):
9959         * dom/Element.cpp:
9960         (WebCore::Element::focus):
9961         * dom/Node.h:
9962         (WebCore::Node::inEden):
9963         (WebCore::Node::setEden):
9964         (Node):
9965
9966 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9967
9968         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
9969         https://bugs.webkit.org/show_bug.cgi?id=101917
9970
9971         Reviewed by Adam Barth.
9972
9973         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
9974         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
9975         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
9976
9977         No tests. No change in behavior.
9978
9979         * bindings/scripts/CodeGeneratorV8.pm:
9980         (GenerateConstructorCallback):
9981         (GenerateEventConstructorCallback):
9982         (GenerateNamedConstructorCallback):
9983         (GenerateToV8Converters):
9984         * bindings/v8/V8DOMWindowShell.cpp:
9985         (WebCore::V8DOMWindowShell::installDOMWindow):
9986         * bindings/v8/V8DOMWrapper.cpp:
9987         (WebCore::V8DOMWrapper::instantiateV8Object):
9988         * bindings/v8/V8DOMWrapper.h:
9989         (V8DOMWrapper):
9990         (WebCore::V8DOMWrapper::createDOMWrapper):
9991         * bindings/v8/WorkerContextExecutionProxy.cpp:
9992         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
9993         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
9994         (WebCore::V8ArrayBuffer::constructorCallback):
9995         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
9996         (WebCore::wrapArrayBufferView):
9997         (WebCore::constructWebGLArray):
9998         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
9999         (WebCore::V8DOMFormData::constructorCallback):
10000         * bindings/v8/custom/V8DataViewCustom.cpp:
10001         (WebCore::V8DataView::constructorCallback):
10002         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
10003         (WebCore::v8HTMLImageElementConstructorCallback):
10004         * bindings/v8/custom/V8IntentConstructor.cpp:
10005         (WebCore::V8Intent::constructorCallback):
10006         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
10007         (WebCore::V8MessageChannel::constructorCallback):
10008         * bindings/v8/custom/V8MutationObserverCustom.cpp:
10009         (WebCore::V8MutationObserver::constructorCallback):
10010         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
10011         (WebCore::V8WebKitPoint::constructorCallback):
10012         * bindings/v8/custom/V8WebSocketCustom.cpp:
10013         (WebCore::V8WebSocket::constructorCallback):
10014         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
10015         (WebCore::V8XMLHttpRequest::constructorCallback):
10016
10017 2012-11-14  Kent Tamura  <tkent@chromium.org>
10018
10019         Support for localization tests of calendar picker
10020         https://bugs.webkit.org/show_bug.cgi?id=102181
10021
10022         Reviewed by Kentaro Hara.
10023
10024         Introduce DateTimeChooserParameters::locale to inform locale to
10025         DateTimeChooser implementations. However we pass defaultLanguage
10026         unless tests calls internals.settings.
10027         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
10028
10029         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
10030
10031         * html/HTMLInputElement.cpp:
10032         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
10033         Set DateTimeChooserParameters::locale up.
10034         * platform/DateTimeChooser.h:
10035         (DateTimeChooserParameters): Add 'locale' member.
10036
10037 2012-11-14  Alexei Filippov  <alph@chromium.org>
10038
10039         Web Inspector: Show total memory in the NMI snapshot header
10040         https://bugs.webkit.org/show_bug.cgi?id=101922
10041
10042         Reviewed by Pavel Feldman.
10043
10044         * inspector/front-end/NativeMemorySnapshotView.js:
10045         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
10046         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
10047
10048 2012-11-14  Jan Keromnes  <janx@linux.com>
10049
10050         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
10051         https://bugs.webkit.org/show_bug.cgi?id=102142
10052
10053         Reviewed by Pavel Feldman.
10054
10055         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
10056
10057         * inspector/front-end/CodeMirrorTextEditor.js:
10058         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
10059
10060 2012-11-13  Kent Tamura  <tkent@chromium.org>
10061
10062         Use menulist-button instead of menulist for date/time input types
10063         https://bugs.webkit.org/show_bug.cgi?id=101886
10064
10065         Reviewed by Hajime Morita.
10066
10067         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
10068         not menulist. We had better apply common one by default.
10069
10070         No new tests. Covered by fast/forms/*/*-appearance-*.html.
10071
10072         * css/html.css:
10073         (input[type="date"]): Switch menulist-button from menulist.
10074         (input[type="datetime"]): Ditto.
10075         (input[type="datetime-local"]): Ditto.
10076         (input[type="month"]): Ditto.
10077         (input[type="time"]): Ditto.
10078         (input[type="week"]): Ditto.
10079         (input::-webkit-date-and-time-value):
10080         Add top, right, bottom margins. The right margin is important when
10081         dir=rtl is specified.
10082         whitespace:pre is needed to align baseline in a case of empty values.
10083         * css/themeChromiumAndroid.css:
10084         Remove redundant style declaration.
10085         * css/themeWin.css:
10086         Remove padding adjustment for date/time input types. It is for
10087         textfields.
10088
10089 2012-11-13  Vincent Scheib  <scheib@chromium.org>
10090
10091         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
10092         https://bugs.webkit.org/show_bug.cgi?id=102107
10093
10094         Reviewed by Adam Barth.
10095
10096         The runtime flag is always true now that the feature is enabled by default in Chromium.
10097
10098         * bindings/generic/RuntimeEnabledFeatures.cpp:
10099         (WebCore):
10100         * bindings/generic/RuntimeEnabledFeatures.h:
10101         (RuntimeEnabledFeatures):
10102         * dom/Document.idl:
10103         * dom/Element.idl:
10104         * dom/MouseEvent.idl:
10105
10106 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10107
10108         Web Inspector: JsDoc-annotate KeyboardShortcuts
10109         https://bugs.webkit.org/show_bug.cgi?id=101301
10110
10111         Reviewed by Pavel Feldman.
10112
10113         JsDoc-annotate KeyboardShortcuts to improve readability.
10114
10115         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10116         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10117         * inspector/front-end/Panel.js: Make event parameter typed.
10118         * inspector/front-end/inspector.js: Ditto.
10119
10120 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10121
10122         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10123         https://bugs.webkit.org/show_bug.cgi?id=101907
10124
10125         Reviewed by Pavel Feldman.
10126
10127         Status bar control element should have common interface for
10128         easier management.
10129         In this patch getter/setter for StatusBarButton "disabled" are replaced
10130         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10131         to StatusBarCombo; added new base class StatusBarItem with
10132         method "setEnabled" and member "element".
10133
10134         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10135         * inspector/front-end/DockController.js: Ditto.
10136         * inspector/front-end/ScriptsPanel.js: Ditto.
10137         * inspector/front-end/TimelinePanel.js: Ditto.
10138         * inspector/front-end/inspector.js: Ditto.
10139         * inspector/front-end/StatusBarButton.js:
10140         (WebInspector.StatusBarItem): Added.
10141         (WebInspector.StatusBarButton): Replaced getter/setter with
10142         regular functions.
10143         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10144
10145 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10146
10147         Web Inspector: Console: update tab/shift-tab shortcut description.
10148         https://bugs.webkit.org/show_bug.cgi?id=102175
10149
10150         Reviewed by Pavel Feldman.
10151
10152         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10153         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10154
10155         * English.lproj/localizedStrings.js: Replaced string.
10156         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10157
10158 2012-11-13  Dana Jansens  <danakj@chromium.org>
10159
10160         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10161         https://bugs.webkit.org/show_bug.cgi?id=102130
10162
10163         Reviewed by James Robinson.
10164
10165         The current method of setting debug borders on GraphicsLayers requires
10166         every GraphicsLayerClient to set the value on the layer(s) it
10167         represents. This skips the NonCompositedContentHost as well as any
10168         other clients other than RenderLayerBacking - including layers from the
10169         inspector.
10170
10171         Instead, pass the debug border setting directly to the
10172         WebLayerTreeSettings where the compositor can use the flag to enable
10173         borders on all layers globally.
10174
10175         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10176         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10177         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10178         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10179         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10180         * platform/graphics/chromium/GraphicsLayerChromium.h:
10181         (GraphicsLayerChromium):
10182
10183 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10184
10185         Enable calendar picker for input types datetime/datetime-local
10186         https://bugs.webkit.org/show_bug.cgi?id=101889
10187
10188         Reviewed by Kent Tamura.
10189
10190         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10191         When a user choose a date from calendar picker, year/month/day fields of the input
10192         element are updated and hour/minute/second fields are unchanged.
10193
10194         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10195                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10196
10197         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10198         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10199         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10200         If the given value is not valid for the element, try to parse it as a date string.
10201         * html/DateTimeInputType.cpp:
10202         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10203         * html/DateTimeLocalInputType.cpp:
10204         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10205         * html/shadow/DateTimeEditElement.cpp:
10206         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10207         (WebCore):
10208         * html/shadow/DateTimeEditElement.h:
10209         (DateTimeEditElement):
10210         * rendering/RenderThemeChromiumCommon.cpp:
10211         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10212
10213 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10214
10215         Unreviewed, rolling out r134524.
10216         http://trac.webkit.org/changeset/134524
10217         https://bugs.webkit.org/show_bug.cgi?id=102177
10218
10219         "Chromiium build broken" (Requested by haraken on #webkit).
10220
10221         * WebCore.gyp/WebCore.gyp:
10222         * WebCore.gypi:
10223         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10224         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10225         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10226         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10227         * rendering/RenderThemeChromiumSkia.cpp:
10228         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10229         (WebCore::RenderThemeChromiumSkia::systemFont):
10230         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10231         * rendering/RenderThemeChromiumSkia.h:
10232         (RenderThemeChromiumSkia):
10233         * rendering/RenderThemeChromiumWin.cpp:
10234         (WebCore):
10235         (WebCore::getNonClientMetrics):
10236         (WebCore::systemFontSize):
10237         (WebCore::pointsToPixels):
10238         (WebCore::RenderThemeChromiumWin::systemFont):
10239         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10240         * rendering/RenderThemeChromiumWin.h:
10241         (RenderThemeChromiumWin):
10242
10243 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10244
10245         Fix compile warning [-Wsign-compare]
10246         https://bugs.webkit.org/show_bug.cgi?id=101458
10247
10248         Reviewed by Alexey Proskuryakov.
10249
10250         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10251         However, it leads -Wsign-compare compile warning.
10252         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10253
10254         * platform/posix/SharedBufferPOSIX.cpp:
10255         (WebCore::SharedBuffer::createWithContentsOfFile):
10256
10257 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10258
10259         Enable datalist UI for input types week and month
10260         https://bugs.webkit.org/show_bug.cgi?id=102041
10261
10262         Reviewed by Kent Tamura.
10263
10264         Enabling datalist UI for input types week and month.
10265
10266         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10267
10268         * rendering/RenderThemeChromiumCommon.cpp:
10269         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10270
10271 2012-11-13  Eberhard Graether  <egraether@google.com>
10272
10273         checkbox to toggle FPS counter in the inspector's settings
10274         https://bugs.webkit.org/show_bug.cgi?id=99660
10275
10276         Reviewed by Pavel Feldman.
10277
10278         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10279
10280         No new tests.
10281
10282         * English.lproj/localizedStrings.js:
10283         * inspector/Inspector.json:
10284         * inspector/InspectorClient.h:
10285         (WebCore::InspectorClient::canShowFPSCounter):
10286         (WebCore::InspectorClient::setShowFPSCounter):
10287         (InspectorClient):
10288         * inspector/InspectorPageAgent.cpp:
10289         (PageAgentState):
10290         (WebCore::InspectorPageAgent::enable):
10291         (WebCore::InspectorPageAgent::disable):
10292         (WebCore::InspectorPageAgent::canShowFPSCounter):
10293         (WebCore):
10294         (WebCore::InspectorPageAgent::setShowFPSCounter):
10295         * inspector/InspectorPageAgent.h:
10296         * inspector/front-end/Settings.js:
10297         * inspector/front-end/SettingsScreen.js:
10298         (WebInspector.GenericSettingsTab):
10299         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10300         * inspector/front-end/inspector.js:
10301         (WebInspector.doLoadedDone):
10302
10303 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10304
10305         Collect necessary features for SelectRuleFeatureSet
10306         https://bugs.webkit.org/show_bug.cgi?id=102160
10307
10308         Reviewed by Dimitri Glazkov.
10309
10310         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10311         distribution, we would like to collect RuleFeature from select attributes.
10312
10313         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10314         indeterminate, link, target, and visited. We collect them in this patch.
10315
10316         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10317
10318         * html/shadow/SelectRuleFeatureSet.cpp:
10319         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10320         (WebCore::SelectRuleFeatureSet::add):
10321         (WebCore::SelectRuleFeatureSet::clear):
10322         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10323         * html/shadow/SelectRuleFeatureSet.h:
10324         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10325         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10326         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10327         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10328         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10329         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10330         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10331         (SelectRuleFeatureSet):
10332         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10333         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10334         * testing/Internals.cpp:
10335         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10336         (WebCore):
10337         * testing/Internals.h:
10338         (Internals):
10339         * testing/Internals.idl:
10340
10341 2012-11-13  Andreas Kling  <kling@webkit.org>
10342
10343         Move inline style logic from ElementAttributeData to StyledElement.
10344         <http://webkit.org/b/102120>
10345
10346         Reviewed by Antti Koivisto.
10347
10348         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10349         No difference in behavior, just making ElementAttributeData dumber.
10350
10351         * css/StylePropertySet.cpp:
10352         * css/StylePropertySet.h:
10353         (WebCore::StylePropertySet::hasCSSOMWrapper):
10354         (WebCore::StylePropertySet::cssStyleDeclaration):
10355
10356             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10357             to instantiate a CSSOM wrapper unnecessarily.
10358
10359         * dom/StyledElement.h:
10360         (WebCore::StyledElement::inlineStyle):
10361         * dom/ElementAttributeData.cpp:
10362         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10363         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10364         (WebCore::ElementAttributeData::reportMemoryUsage):
10365         * dom/ElementAttributeData.h:
10366         (WebCore::ElementAttributeData::inlineStyle):
10367         (ElementAttributeData):
10368
10369             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10370
10371         * dom/StyledElement.cpp:
10372         (WebCore::StyledElement::~StyledElement):
10373
10374             Detach the CSSOM wrapper from the inline style if there is one.
10375
10376         (WebCore::StyledElement::ensureMutableInlineStyle):
10377         (WebCore::StyledElement::style):
10378
10379             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10380             actually does. Update call sites accordingly.
10381
10382         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10383
10384             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10385
10386         (WebCore::StyledElement::styleAttributeChanged):
10387
10388             Do the work to parse/update/replace the inline style attribute here instead of
10389             in an ElementAttributeData method.
10390
10391         (WebCore::StyledElement::setInlineStyleProperty):
10392         (WebCore::StyledElement::removeInlineStyleProperty):
10393         (WebCore::StyledElement::removeAllInlineStyleProperties):
10394         * editing/ApplyStyleCommand.cpp:
10395         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10396         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10397         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10398         * editing/ReplaceSelectionCommand.cpp:
10399         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10400         * html/canvas/CanvasStyle.cpp:
10401         (WebCore::currentColor):
10402
10403             s/ensureInlineStyle/ensureMutableInlineStyle/
10404
10405 2012-11-13  Li Yin  <li.yin@intel.com>
10406
10407         fast/forms/file/input-file-write-files.html should cover correct setting value
10408         https://bugs.webkit.org/show_bug.cgi?id=100085
10409
10410         Reviewed by Kentaro Hara.
10411
10412         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10413         behavior for those may be important in idl.
10414
10415         No new tests, because fast/forms/file/input-file-value.html has covered it.
10416
10417         * html/HTMLInputElement.idl:
10418
10419 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10420
10421         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10422         https://bugs.webkit.org/show_bug.cgi?id=102061
10423
10424         Reviewed by Gyuyoung Kim.
10425
10426         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10427
10428         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10429         (WebCore::readSocketCallback):
10430
10431 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10432
10433         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10434         https://bugs.webkit.org/show_bug.cgi?id=101947
10435
10436         Reviewed by Simon Fraser.
10437
10438         When a scrolling contents graphics layer is created or destroyed, the
10439         associated graphics layer is marked as needing display because some of
10440         the painted content may have migrated between the primary graphics layer
10441         and the scrolling layer.
10442
10443         This causes a problem when the RenderLayerBacking is being destroyed,
10444         because setNeedsDisplay() needs to check from the compositor whether to
10445         track repaints or not. If the RenderLayerBacking is being destroyed, the
10446         value returned by compositor() is garbage and this causes a crash.
10447
10448         This patch fixes the problem by making RenderLayer::compositor() return a null
10449         pointer when the renderer no longer has a view.
10450
10451         Covered by existing layout tests in compositing/overflow/.
10452
10453         * rendering/RenderLayer.cpp:
10454         (WebCore::RenderLayer::compositor):
10455
10456 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10457
10458         Update DOMException name: InvalidCharacterError
10459         https://bugs.webkit.org/show_bug.cgi?id=102128
10460
10461         Reviewed by Darin Adler.
10462
10463         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10464
10465         Updated existing tests.
10466
10467         * dom/DOMCoreException.cpp:
10468
10469 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10470
10471         IndexedDB: Run multiple tasks per transaction tick
10472         https://bugs.webkit.org/show_bug.cgi?id=97738
10473
10474         Reviewed by Tony Chang.
10475
10476         Process multiple tasks from the pending queue(s) when the timer fires. The
10477         task may initiate new tasks that change which queue is active (e.g. indexing
10478         operations) so the loop must re-check each tick which queue to use.
10479
10480         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10481         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10482
10483         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10484
10485         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10486         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10487         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10488
10489 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10490
10491         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10492         https://bugs.webkit.org/show_bug.cgi?id=102012
10493
10494         Reviewed by Ojan Vafai.
10495
10496         Previously if you modified the subtree that was being removed from a
10497         removeChild from inside an unload handler on an <iframe> inside the
10498         subtree you'd get an exception which is wrong. Instead we just need to
10499         disable all frame loading there.
10500
10501         This works because either the subtree will be removed and the frame never
10502         loading doesn't matter, or some section of the subtree that contains the
10503         frame will be moved to another part of the document which will cause the
10504         frame to load when it's inserted there.
10505
10506         I also added a check for <object> elements. It doesn't seem this is actually
10507         reachable in the existing code, but I'm not entirely sure since the frame
10508         loading and object/plugin handling is very confusing.
10509
10510         A better fix could be to repeatedly walk the subtree until all frames
10511         were disconnected or some iteration limit was hit and then force all leftover
10512         subframes to disconnect without firing unload handlers but this is such an
10513         edge case I don't think the complexity is necessary.
10514
10515         Test: fast/frames/modifications-in-subtree-unload.html
10516
10517         * dom/ContainerNodeAlgorithms.h:
10518         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10519         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10520         (ChildFrameDisconnector):
10521         (WebCore::ChildFrameDisconnector::disconnect):
10522         * dom/Node.cpp:
10523         (WebCore::checkAcceptChild): Removed exception.
10524         * html/HTMLFrameElementBase.cpp:
10525         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10526         * html/HTMLFrameOwnerElement.h:
10527         (SubframeLoadingDisabler):
10528         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10529         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10530         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10531           Returns true if frames can be loaded in the subtree.
10532         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10533         * html/HTMLObjectElement.cpp:
10534         (WebCore::HTMLObjectElement::updateWidget):
10535           Check canLoadFrame(). I think this case is impossible, but it's better
10536           to be safe than sorry later.
10537
10538 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10539
10540         [V8] Add missing ENABLE(SVG) test in header
10541         https://bugs.webkit.org/show_bug.cgi?id=102143
10542
10543         Reviewed by Kentaro Hara.
10544
10545         Need to wrap the #include of a header that's only conditionally generated.
10546
10547         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10548
10549         * bindings/v8/custom/V8ElementCustom.cpp:
10550
10551 2012-11-13  Jon Lee  <jonlee@apple.com>
10552
10553         Automatically run small plugins
10554         https://bugs.webkit.org/show_bug.cgi?id=102148
10555         <rdar://problem/12695560>
10556
10557         Reviewed by Darin Adler.
10558
10559         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10560         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10561         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10562         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10563         display state to Playing. Assuming we will always layout before first paint, changing the state here
10564         should be safe.
10565         * rendering/RenderSnapshottedPlugIn.h:
10566
10567 2012-11-13  Kenneth Russell  <kbr@google.com>
10568
10569         Notify embedder of lost contexts and allow overriding of WebGL support
10570         https://bugs.webkit.org/show_bug.cgi?id=101826
10571
10572         Reviewed by Adam Barth.
10573
10574         Add hooks notifying the embedder when OpenGL contexts are lost and
10575         allowing overriding of WebGL support on a per-frame basis.
10576
10577         No tests yet; don't know how to test this solely within WebKit.
10578         Currently developing tests in the Chromium port exercising the
10579         notifications end-to-end. Once those are in place, I'm prepared to
10580         investigate adding tests for all ports.
10581
10582         * html/canvas/WebGLRenderingContext.cpp:
10583         (WebCore):
10584         (WebCore::WebGLRenderingContext::create):
10585           Check whether embedder vetoes creation of new WebGL contexts.
10586         (WebCore::WebGLRenderingContext::loseContextImpl):
10587           Notify embedder that context was lost.
10588         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10589           Check whether embedder vetoes restoration of existing WebGL contexts.
10590         * loader/FrameLoaderClient.h:
10591         (FrameLoaderClient):
10592         (WebCore::FrameLoaderClient::allowWebGL):
10593         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10594           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10595
10596 2012-11-13  Scott Violet  <sky@chromium.org>
10597
10598         [Chromium] Refactor theme font lookup into a factory
10599         https://bugs.webkit.org/show_bug.cgi?id=101949
10600
10601         Reviewed by Tony Chang.
10602
10603         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10604
10605         No new tests. Refactoring only.
10606
10607         * WebCore.gyp/WebCore.gyp:
10608         * WebCore.gypi:
10609         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10610         (WebCore):
10611         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10612         * rendering/RenderThemeChromiumFontProvider.h: Added.
10613         (WTF):
10614         (WebCore):
10615         (RenderThemeChromiumFontProvider): This is the font related methods.
10616         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10617         (WebCore):
10618         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10619         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10620         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10621         (WebCore):
10622         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10623         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10624         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10625         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10626         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10627         * rendering/RenderThemeChromiumSkia.cpp:
10628         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10629         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10630         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10631         * rendering/RenderThemeChromiumSkia.h:
10632         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10633         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10634         (WebCore):
10635         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10636         (RenderThemeChromiumWin):
10637
10638 2012-11-13  Alec Flett  <alecflett@chromium.org>
10639
10640         Add DOMRequestState to maintain world/ScriptExecutionContext state
10641         https://bugs.webkit.org/show_bug.cgi?id=102102
10642
10643         Reviewed by Adam Barth.
10644
10645         Introduce DOMRequestState, and convert IndexedDB over.
10646
10647         No new tests, this is an abstraction layer for existing code.
10648
10649         * Modules/indexeddb/IDBRequest.cpp:
10650         (WebCore::IDBRequest::IDBRequest):
10651         (WebCore::IDBRequest::onSuccess):
10652         (WebCore::IDBRequest::dispatchEvent):
10653         * Modules/indexeddb/IDBRequest.h:
10654         (IDBRequest):
10655         * WebCore.gypi:
10656         * bindings/v8/DOMRequestState.h: Added.
10657         (WebCore):
10658         (DOMRequestState):
10659         (WebCore::DOMRequestState::DOMRequestState):
10660         (Scope):
10661         (WebCore::DOMRequestState::Scope::Scope):
10662         (WebCore::DOMRequestState::scope):
10663
10664 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10665
10666         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10667         https://bugs.webkit.org/show_bug.cgi?id=101634
10668
10669         Reviewed by Adam Barth.
10670
10671         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10672         into RenderThemeMacShared.
10673
10674         No new tests, just refactoring.
10675
10676         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10677         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10678         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10679         * rendering/RenderThemeChromiumMac.h:
10680         * rendering/RenderThemeChromiumMac.mm:
10681         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10682         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10683         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10684         * rendering/RenderThemeMac.h:
10685         (RenderThemeMac):
10686         * rendering/RenderThemeMac.mm:
10687         (WebCore):
10688         (WebCore::RenderTheme::themeForPage):
10689         (WebCore::RenderThemeMac::create):
10690         (WebCore::RenderThemeMac::RenderThemeMac):
10691         (WebCore::RenderThemeMac::~RenderThemeMac):
10692         (WebCore::RenderThemeMac::documentViewFor):
10693         (WebCore::mediaControllerTheme):
10694         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10695         (WebCore::RenderThemeMac::paintMediaRewindButton):
10696         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10697         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10698         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10699         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10700         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10701         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10702         (WebCore):
10703         (RenderThemeMacShared):
10704         (WebCore::RenderThemeMacShared::supportsControlTints):
10705         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10706         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10707         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10708         (WebCore::RenderThemeMacShared::updateActiveState):
10709         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10710         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10711         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10712         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10713         (WebCore):
10714         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10715         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10716         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10717         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10718         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10719         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10720         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10721         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10722         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10723         (WebCore::toFontWeight):
10724         (WebCore::RenderThemeMacShared::systemFont):
10725         (WebCore::convertNSColorToColor):
10726         (WebCore::menuBackgroundColor):
10727         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10728         (WebCore::RenderThemeMacShared::systemColor):
10729         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10730         (WebCore::RenderThemeMacShared::isControlStyled):
10731         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10732         (WebCore::RenderThemeMacShared::inflateRect):
10733         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10734         (WebCore::RenderThemeMacShared::updateCheckedState):
10735         (WebCore::RenderThemeMacShared::updateEnabledState):
10736         (WebCore::RenderThemeMacShared::updateFocusedState):
10737         (WebCore::RenderThemeMacShared::updatePressedState):
10738         (WebCore::RenderThemeMacShared::controlSupportsTints):
10739         (WebCore::RenderThemeMacShared::controlSizeForFont):
10740         (WebCore::RenderThemeMacShared::setControlSize):
10741         (WebCore::RenderThemeMacShared::sizeForFont):
10742         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10743         (WebCore::RenderThemeMacShared::setSizeFromFont):
10744         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10745         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10746         (WebCore::RenderThemeMacShared::paintTextField):
10747         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10748         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10749         (WebCore::RenderThemeMacShared::paintTextArea):
10750         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10751         (WebCore::RenderThemeMacShared::popupButtonMargins):
10752         (WebCore::RenderThemeMacShared::popupButtonSizes):
10753         (WebCore::RenderThemeMacShared::popupButtonPadding):
10754         (WebCore::RenderThemeMacShared::paintMenuList):
10755         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10756         (WebCore::RenderThemeMacShared::paintMeter):
10757         (WebCore::RenderThemeMacShared::supportsMeter):
10758         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10759         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10760         (WebCore::RenderThemeMacShared::progressBarSizes):
10761         (WebCore::RenderThemeMacShared::progressBarMargins):
10762         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10763         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10764         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10765         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10766         (WebCore::RenderThemeMacShared::paintProgressBar):
10767         (WebCore::TopGradientInterpolate):
10768         (WebCore::BottomGradientInterpolate):
10769         (WebCore::MainGradientInterpolate):
10770         (WebCore::TrackGradientInterpolate):
10771         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10772         (WebCore::RenderThemeMacShared::paintMenuListButton):
10773         (WebCore::menuListButtonSizes):
10774         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10775         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10776         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10777         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10778         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10779         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10780         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10781         (WebCore::RenderThemeMacShared::menuListSizes):
10782         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10783         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10784         (WebCore::RenderThemeMacShared::paintSliderTrack):
10785         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10786         (WebCore::RenderThemeMacShared::paintSliderThumb):
10787         (WebCore::RenderThemeMacShared::paintSearchField):
10788         (WebCore::RenderThemeMacShared::setSearchCellState):
10789         (WebCore::RenderThemeMacShared::searchFieldSizes):
10790         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10791         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10792         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10793         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10794         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10795         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10796         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10797         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10798         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10799         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10800         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10801         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10802         (WebCore::RenderThemeMacShared::sliderTickSize):
10803         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10804         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10805         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10806         (WebCore::RenderThemeMacShared::popupButton):
10807         (WebCore::RenderThemeMacShared::search):
10808         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10809         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10810         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10811         (WebCore::RenderThemeMacShared::textField):
10812         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10813         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10814
10815 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10816
10817         CSS @charset parsing is too loose, doesn't match other browsers
10818         https://bugs.webkit.org/show_bug.cgi?id=101527
10819
10820         Reviewed by Alexey Proskuryakov.
10821
10822         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10823         IE and FF have changed to be strict about @charset parsing,
10824         as the CSS 2.1 spec requires.
10825         Since @charset use is very uncommon anyway,
10826         we should match the new behavior and the spec for platform consistency.
10827
10828         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10829
10830         * loader/TextResourceDecoder.cpp:
10831         (WebCore::bytesEqual):
10832         (WebCore::TextResourceDecoder::checkForCSSCharset):
10833
10834 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10835
10836         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10837         https://bugs.webkit.org/show_bug.cgi?id=101569
10838
10839         Reviewed by Alexey Proskuryakov.
10840
10841         Replace unpaired surrogates with replacing character (U+FFFD) when
10842         encoding text messages and close reasons. This change is aimed at
10843         following the changes on the WebSocket API specification.
10844
10845         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10846
10847         * Modules/websockets/WebSocket.cpp:
10848         (WebCore::WebSocket::close):
10849         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10850         text message. Remove invalid utf-8 check.
10851         * Modules/websockets/WebSocketChannel.cpp:
10852         (WebCore::WebSocketChannel::send):
10853         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10854         close reason. Remove invalid utf-8 check.
10855
10856 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10857
10858         Make HTMLLegendElement.form behave according to specification
10859         https://bugs.webkit.org/show_bug.cgi?id=101044
10860
10861         Reviewed by Kent Tamura.
10862
10863         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10864         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10865         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10866         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10867
10868         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10869         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10870         return the same value as the parent fieldset's form attribute.
10871
10872         Test: fast/forms/legend/legend-form.html
10873
10874         * html/HTMLLegendElement.cpp:
10875         (WebCore):
10876         (WebCore::HTMLLegendElement::virtualForm):
10877         * html/HTMLLegendElement.h:
10878         (HTMLLegendElement):
10879
10880 2012-11-13  Mark Lam  <mark.lam@apple.com>
10881
10882         Make an assertion in JSEventListener::jsFunction() more useful.
10883         https://bugs.webkit.org/show_bug.cgi?id=101985.
10884
10885         Reviewed by Geoffrey Garen.
10886
10887         The assertion was weakened in r134495. This strengthens it again.
10888
10889         No new tests.
10890
10891         * bindings/js/JSEventListener.h:
10892         (WebCore::JSEventListener::jsFunction):
10893
10894 2012-11-13  Dean Jackson  <dino@apple.com>
10895
10896         Support list of tracks in caption media controls
10897         https://bugs.webkit.org/show_bug.cgi?id=101669
10898
10899         Reviewed by Eric Carlson.
10900
10901         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10902         crashed the Windows test bot. It's also been rebased since r134488.
10903
10904         Add some new elements to the media control shadow DOM that display the list of available
10905         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10906         where it is given a very basic design. At the moment only the list of available tracks
10907         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10908
10909         No new tests - this doesn't expose any testable surface.
10910
10911         * css/mediaControls.css: Added default rules that hide the new elements.
10912         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10913         * html/shadow/MediaControlElements.cpp:
10914         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10915         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10916         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10917         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10918         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10919         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10920         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10921         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10922         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10923         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10924         * html/shadow/MediaControlElements.h:
10925         (MediaControlElement):
10926         (MediaControlToggleClosedCaptionsButtonElement):
10927         (MediaControlClosedCaptionsContainerElement):
10928         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10929         * html/shadow/MediaControlsApple.cpp:
10930         (WebCore::MediaControlsApple::MediaControlsApple):
10931         (WebCore::MediaControlsApple::create): New track container and list elements created.
10932         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10933         (WebCore::MediaControlsApple::hide):
10934         (WebCore::MediaControlsApple::makeTransparent):
10935         (WebCore::MediaControlsApple::reset):
10936         (WebCore::MediaControlsApple::reportedError):
10937         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10938         (WebCore):
10939         * html/shadow/MediaControlsApple.h:
10940         (MediaControlsApple):
10941         * html/shadow/MediaControlsChromium.cpp:
10942         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10943         * html/shadow/MediaControls.h:
10944         (MediaControls):
10945         * platform/Language.cpp:
10946         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10947         * platform/Language.h:
10948         (WebCore):
10949         * rendering/RenderMediaControls.cpp:
10950         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10951         * rendering/RenderMediaControlsChromium.cpp:
10952         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10953
10954 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10955
10956         Unreviewed, rolling out r134377.
10957         http://trac.webkit.org/changeset/134377
10958         https://bugs.webkit.org/show_bug.cgi?id=101133
10959
10960         Caused a mysterious Android Clang build failure, needs
10961         investigation before landing again.
10962
10963         * css/html.css:
10964         (input::-webkit-textfield-decoration-container):
10965         * html/TextFieldInputType.cpp:
10966         (WebCore::TextFieldInputType::attach):
10967
10968 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10969
10970         Unreviewed, rolling out r134482.
10971         http://trac.webkit.org/changeset/134482
10972         https://bugs.webkit.org/show_bug.cgi?id=102140
10973
10974         The patch causes fast/regions/moved-content-node-crash.html to
10975         crash in Debug mode due to ASSERTION. (Requested by abucur on
10976         #webkit).
10977
10978         * rendering/InlineFlowBox.cpp:
10979         (SameSizeAsInlineFlowBox):
10980         * rendering/InlineFlowBox.h:
10981         (WebCore::InlineFlowBox::InlineFlowBox):
10982         (InlineFlowBox):
10983         * rendering/RenderBlock.cpp:
10984         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
10985         * rendering/RenderBlockLineLayout.cpp:
10986         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
10987         (WebCore::RenderBlock::linkToEndLineIfNeeded):
10988         (WebCore::RenderBlock::determineStartPosition):
10989         * rendering/RootInlineBox.cpp:
10990         (WebCore::RootInlineBox::RootInlineBox):
10991         * rendering/RootInlineBox.h:
10992         (WebCore):
10993         (WebCore::RootInlineBox::paginationStrut):
10994         (WebCore::RootInlineBox::setPaginationStrut):
10995         (WebCore::RootInlineBox::isFirstAfterPageBreak):
10996         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
10997         (WebCore::RootInlineBox::paginatedLineWidth):
10998         (WebCore::RootInlineBox::setPaginatedLineWidth):
10999         (RootInlineBox):
11000
11001 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
11002
11003         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
11004         https://bugs.webkit.org/show_bug.cgi?id=102108
11005
11006         Reviewed by Adam Barth.
11007
11008         No new tests. Fix clang build break.
11009
11010         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
11011
11012 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11013
11014         AX: MathML types need to be semantically identified in AX tree
11015         https://bugs.webkit.org/show_bug.cgi?id=101263
11016
11017         Reviewed by Beth Dakin.
11018
11019         Semantically identify various MathML elements within the AX tree. This will allow
11020         screen readers to identify math types so that equations can be output more accurately.
11021
11022         Test: platform/mac/accessibility/mathml-elements.html
11023
11024         * accessibility/AccessibilityObject.h:
11025         (AccessibilityObject):
11026         (WebCore::AccessibilityObject::isMathElement):
11027         (WebCore::AccessibilityObject::isMathFraction):
11028         (WebCore::AccessibilityObject::isMathFenced):
11029         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
11030         (WebCore::AccessibilityObject::isMathRow):
11031         (WebCore::AccessibilityObject::isMathUnderOver):
11032         (WebCore::AccessibilityObject::isMathRoot):
11033         (WebCore::AccessibilityObject::isMathSquareRoot):
11034         (WebCore::AccessibilityObject::isMathText):
11035         (WebCore::AccessibilityObject::isMathNumber):
11036         (WebCore::AccessibilityObject::isMathOperator):
11037         (WebCore::AccessibilityObject::isMathFenceOperator):
11038         (WebCore::AccessibilityObject::isMathSeparatorOperator):
11039         (WebCore::AccessibilityObject::isMathIdentifier):
11040         (WebCore::AccessibilityObject::isMathTable):
11041         (WebCore::AccessibilityObject::isMathTableRow):
11042         (WebCore::AccessibilityObject::isMathTableCell):
11043         (WebCore::AccessibilityObject::mathRadicandObject):
11044         (WebCore::AccessibilityObject::mathRootIndexObject):
11045         (WebCore::AccessibilityObject::mathUnderObject):
11046         (WebCore::AccessibilityObject::mathOverObject):
11047         (WebCore::AccessibilityObject::mathNumeratorObject):
11048         (WebCore::AccessibilityObject::mathDenominatorObject):
11049         (WebCore::AccessibilityObject::mathBaseObject):
11050         (WebCore::AccessibilityObject::mathSubscriptObject):
11051         (WebCore::AccessibilityObject::mathSuperscriptObject):
11052         (WebCore::AccessibilityObject::mathFencedOpenString):
11053         (WebCore::AccessibilityObject::mathFencedCloseString):
11054         * accessibility/AccessibilityRenderObject.cpp:
11055         (WebCore::startOfContinuations):
11056             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
11057         (WebCore::AccessibilityRenderObject::textUnderElement):
11058             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
11059         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
11060             Handle ignored cases for math elements
11061         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11062         (WebCore::AccessibilityRenderObject::isMathElement):
11063         (WebCore::AccessibilityRenderObject::isMathFraction):
11064         (WebCore::AccessibilityRenderObject::isMathFenced):
11065         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
11066         (WebCore::AccessibilityRenderObject::isMathRow):
11067         (WebCore::AccessibilityRenderObject::isMathUnderOver):
11068         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
11069         (WebCore::AccessibilityRenderObject::isMathRoot):
11070         (WebCore::AccessibilityRenderObject::isMathOperator):
11071         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
11072         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
11073         (WebCore::AccessibilityRenderObject::isMathText):
11074         (WebCore::AccessibilityRenderObject::isMathNumber):
11075         (WebCore::AccessibilityRenderObject::isMathIdentifier):
11076         (WebCore::AccessibilityRenderObject::isMathTable):
11077         (WebCore::AccessibilityRenderObject::isMathTableRow):
11078         (WebCore::AccessibilityRenderObject::isMathTableCell):
11079         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
11080             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
11081         (WebCore::AccessibilityRenderObject::mathRadicandObject):
11082         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
11083         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
11084         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
11085         (WebCore::AccessibilityRenderObject::mathUnderObject):
11086         (WebCore::AccessibilityRenderObject::mathOverObject):
11087         (WebCore::AccessibilityRenderObject::mathBaseObject):
11088         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
11089         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
11090         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
11091         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
11092         * accessibility/AccessibilityRenderObject.h:
11093         (AccessibilityRenderObject):
11094         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11095         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
11096         (createAccessibilityRoleMap):
11097         (-[WebAccessibilityObjectWrapper subrole]):
11098         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11099         * rendering/mathml/RenderMathMLBlock.cpp:
11100         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11101         * rendering/mathml/RenderMathMLBlock.h:
11102         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11103         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11104         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11105         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11106         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11107         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11108         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11109         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11110             Add ability to identify anonymous render blocks as items that AX should ignore.
11111         (RenderMathMLBlock):
11112         * rendering/mathml/RenderMathMLFenced.cpp:
11113         (WebCore::RenderMathMLFenced::createMathMLOperator):
11114             Identify which kind of math operator is being created on the fly (Fence or Separator)
11115         (WebCore::RenderMathMLFenced::makeFences):
11116         (WebCore::RenderMathMLFenced::addChild):
11117         * rendering/mathml/RenderMathMLFenced.h:
11118         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11119         (RenderMathMLFenced):
11120         * rendering/mathml/RenderMathMLFraction.h:
11121         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11122         * rendering/mathml/RenderMathMLOperator.cpp:
11123         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11124         (WebCore::RenderMathMLOperator::updateFromElement):
11125         (WebCore::RenderMathMLOperator::createGlyph):
11126              Mark anonymous render blocks as AX ignored.
11127         * rendering/mathml/RenderMathMLOperator.h:
11128         (WebCore::RenderMathMLOperator::setOperatorType):
11129         (WebCore::RenderMathMLOperator::operatorType):
11130         (RenderMathMLOperator):
11131         * rendering/mathml/RenderMathMLRoot.h:
11132         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11133         * rendering/mathml/RenderMathMLSquareRoot.h:
11134         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11135         * rendering/mathml/RenderMathMLSubSup.h:
11136         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11137         * rendering/mathml/RenderMathMLUnderOver.h:
11138         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11139         
11140 2012-11-13  Mark Lam  <mark.lam@apple.com>
11141
11142         JSEventListener should not access m_jsFunction when its wrapper is gone.
11143         https://bugs.webkit.org/show_bug.cgi?id=101985.
11144
11145         Reviewed by Geoffrey Garen.
11146
11147         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11148
11149         No new tests.
11150
11151         * bindings/js/JSEventListener.cpp:
11152         (WebCore::JSEventListener::initializeJSFunction):
11153         - Removed a now invalid assertion. m_wrapper is expected to have a
11154           valid non-zero value when jsFunction is valid. However, in the case
11155           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11156           initially 0 when m_jsFunction has not been realized yet. When
11157           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11158           it will set m_wrapper to an appropriate wrapper object.
11159
11160           For this reason, JSEventListener::jsFunction() cannot do the null
11161           check on m_wrapper until after the call to initializeJSFunction.
11162
11163           This, in turns, means that in the case of the non-lazy
11164           JSEventListener, initializeJSFunction() will also be called, and
11165           if the GC has collected the m_wrapper but the JSEventListener has
11166           not been removed yet, it is possible to see a null m_wrapper while
11167           m_jsFunction contains a non-zero stale value.
11168
11169           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11170           JSEventListener::initializeJSFunction() is not always true and
11171           should be removed.
11172
11173         (WebCore::JSEventListener::visitJSFunction):
11174         (WebCore::JSEventListener::operator==):
11175         * bindings/js/JSEventListener.h:
11176         (WebCore::JSEventListener::jsFunction):
11177
11178 2012-11-13  Adam Barth  <abarth@webkit.org>
11179
11180         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11181         https://bugs.webkit.org/show_bug.cgi?id=102117
11182
11183         Reviewed by Eric Seidel.
11184
11185         The logic around creationContext is tricky. Rather than putting the
11186         logic in the code generator, we can centralize the logic in
11187         instantiateV8Object.
11188
11189         This patch shouldn't have any behavior change.
11190
11191         * bindings/scripts/CodeGeneratorV8.pm:
11192         (GenerateToV8Converters):
11193         * bindings/v8/V8DOMWrapper.cpp:
11194         (V8WrapperInstantiationScope):
11195         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11196         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11197         (WebCore::V8WrapperInstantiationScope::context):
11198         (WebCore):
11199         (WebCore::V8DOMWrapper::instantiateV8Object):
11200         * bindings/v8/V8DOMWrapper.h:
11201         (V8DOMWrapper):
11202
11203 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11204
11205         Clean up the inheritance tree under the MediaControls Class.
11206         https://bugs.webkit.org/show_bug.cgi?id=88871
11207
11208         Reviewed by Eric Carlson.
11209
11210         This patch removes code duplication between the Chromium and Safari
11211         media controls shadow DOMs.
11212         This is achieved by pulling common functions that are identical (or
11213         almost identical) between the different platforms into the base class.
11214         The derived classes are renamed based on their platform:
11215         - MediaControlRootElement                to MediaControlsApple.
11216         - MediaControlRootElementChromium        to MediaControlsChromium.
11217         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11218         MediaControls is now no longer an abstract base class, but its "create"
11219         function is only implemented in the port-specific header file, so it's
11220         on purpose incomplete in the MediaControls.cpp file.
11221
11222         No new tests because this is refactoring work only.
11223
11224         * CMakeLists.txt:
11225           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11226         * GNUmakefile.list.am:
11227           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11228         * Target.pri:
11229           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11230         * WebCore.gypi:
11231           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11232         * WebCore.order:
11233           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11234         * WebCore.vcproj/WebCore.vcproj:
11235           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11236         * WebCore.xcodeproj/project.pbxproj:
11237           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11238         * html/shadow/MediaControlElements.cpp:
11239         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11240           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11241           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11242         * html/shadow/MediaControls.cpp:
11243         (WebCore::MediaControls::MediaControls):
11244           Added initialization for media elements that all platform controls share.
11245         (WebCore):
11246           Removed include files that are already included in header file.
11247         (WebCore::MediaControls::setMediaController):
11248           Added controller assignment for media elements that all platform controls share.
11249         (WebCore::MediaControls::reset):
11250           Added resets for media elements that all platform controls share.
11251         (WebCore::MediaControls::reportedError):
11252           Added error handling for media elements that all platform controls share.
11253         (WebCore::MediaControls::loadedMetadata):
11254           Added default action for loadedMetadata event.
11255         (WebCore::MediaControls::show):
11256         (WebCore::MediaControls::hide):
11257         (WebCore::MediaControls::makeOpaque):
11258         (WebCore::MediaControls::makeTransparent):
11259         (WebCore::MediaControls::shouldHideControls):
11260         (WebCore::MediaControls::bufferingProgressed):
11261         (WebCore::MediaControls::playbackStarted):
11262         (WebCore::MediaControls::playbackProgressed):
11263         (WebCore::MediaControls::playbackStopped):
11264         (WebCore::MediaControls::updateCurrentTimeDisplay):
11265         (WebCore::MediaControls::showVolumeSlider):
11266         (WebCore::MediaControls::changedMute):
11267         (WebCore::MediaControls::changedVolume):
11268         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11269         (WebCore::MediaControls::enteredFullscreen):
11270         (WebCore::MediaControls::exitedFullscreen):
11271         (WebCore::MediaControls::defaultEventHandler):
11272         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11273         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11274         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11275         (WebCore::MediaControls::shadowPseudoId):
11276         (WebCore::MediaControls::containsRelatedTarget):
11277         (WebCore::MediaControls::createTextTrackDisplay):
11278         (WebCore::MediaControls::showTextTrackDisplay):
11279         (WebCore::MediaControls::hideTextTrackDisplay):
11280         (WebCore::MediaControls::updateTextTrackDisplay):
11281           Added default actions for all these media controls member functions.
11282         * html/shadow/MediaControls.h:
11283         (WebCore):
11284           Added include files and forward class declarations that all media controls share.
11285         (MediaControls):
11286           Make all pure virtual functions that have default implementations just virtual.
11287         (WebCore::MediaControls::updateStatusDisplay):
11288           Add an empty virtual updateStatusDisplay function which is used by media elements.
11289         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11290           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11291         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11292           Reduced Apple-specific media control elements by relying on some elements in the base class.
11293         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11294           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11295         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11296           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11297         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11298           Renamed class name and base class name.
11299         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11300           Renamed class name and base class name.
11301         * rendering/RenderTheme.h:
11302         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11303           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11304
11305 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11306
11307         CSSParser::setStyleSheet() should be inline
11308         https://bugs.webkit.org/show_bug.cgi?id=101829
11309
11310         Reviewed by Andreas Kling.
11311
11312         * css/CSSParser.cpp:
11313         * css/CSSParser.h:
11314         (WebCore::CSSParser::setStyleSheet):
11315         CSSParser::setStyleSheet() just assign a pointer, it does not even
11316         change a ref-count. The function should probably be in the header.
11317
11318 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11319
11320         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11321         https://bugs.webkit.org/show_bug.cgi?id=101332
11322
11323         Reviewed by David Hyatt.
11324
11325         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11326         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11327         including a new member, the containing Region for the line.
11328         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11329         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11330         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
11331         the task of updating the containing Region to the block.
11332
11333         Tests: No new tests because there is no functional change.
11334
11335         * rendering/InlineFlowBox.cpp:
11336         (SameSizeAsInlineFlowBox):
11337         * rendering/InlineFlowBox.h:
11338         (WebCore::InlineFlowBox::InlineFlowBox):
11339         (InlineFlowBox):
11340         * rendering/RenderBlock.cpp:
11341         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11342         * rendering/RenderBlockLineLayout.cpp:
11343         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11344         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11345         (WebCore::RenderBlock::determineStartPosition):
11346         * rendering/RootInlineBox.cpp:
11347         (WebCore::RootInlineBox::RootInlineBox):
11348         (WebCore::RootInlineBox::setContainingRegion):
11349         (WebCore):
11350         * rendering/RootInlineBox.h:
11351         (WebCore):
11352         (WebCore::RootInlineBox::paginationStrut):
11353         (WebCore::RootInlineBox::setPaginationStrut):
11354         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11355         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11356         (WebCore::RootInlineBox::paginatedLineWidth):
11357         (WebCore::RootInlineBox::setPaginatedLineWidth):
11358         (RootInlineBox):
11359         (WebCore::RootInlineBox::containingRegion):
11360         (WebCore::RootInlineBox::ensureLineFragmentationData):
11361         (LineFragmentationData):
11362         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11363
11364 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11365
11366         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11367         https://bugs.webkit.org/show_bug.cgi?id=98038
11368
11369         Reviewed by Simon Hausmann.
11370
11371         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11372
11373         * platform/graphics/OpenGLShims.cpp:
11374         (WebCore):
11375
11376 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11377
11378         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11379         https://bugs.webkit.org/show_bug.cgi?id=101616
11380
11381         Reviewed by Beth Dakin.
11382
11383         If the rowheader role is exposed because the element is not within a table, the mac platform
11384         should map that to a generic group.
11385
11386         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11387
11388         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11389         (createAccessibilityRoleMap):
11390
11391 2012-11-13  Stephen White  <senorblanco@chromium.org>
11392
11393         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11394         https://bugs.webkit.org/show_bug.cgi?id=101952
11395
11396         Reviewed by James Robinson.
11397
11398         With these changes, all of the css3/filters tests pass when the
11399         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11400         now, it remains true only if there's a reference filter in the chain).
11401
11402         Covered by the css3/filters tests (when the switch is thrown in
11403         GraphicsLayerChromium::setFilters()).
11404
11405         * WebCore.gypi:
11406         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11407         Drop to software rendering if there's a custom filter in the chain.
11408         This is the same as the WebFilterOperations path is doing.
11409         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11410         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11411         New implementation of drop-shadow filter; equivalent to
11412         the path in cc/render_surface_filters.cc.
11413         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11414         Fix the sepia and grayscale filters (value was inverted).
11415
11416 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11417
11418         Unreviewed, rolling out r134442.
11419         http://trac.webkit.org/changeset/134442
11420         https://bugs.webkit.org/show_bug.cgi?id=102111
11421
11422         Does not compile on apple-mac (Requested by abarth on
11423         #webkit).
11424
11425         * CMakeLists.txt:
11426         * GNUmakefile.list.am:
11427         * Target.pri:
11428         * WebCore.gypi:
11429         * WebCore.vcproj/WebCore.vcproj:
11430         * WebCore.xcodeproj/project.pbxproj:
11431         * css/CSSCursorImageValue.cpp:
11432         (WebCore::CSSCursorImageValue::cachedImage):
11433         * css/CSSFontFaceSrcValue.cpp:
11434         (WebCore::CSSFontFaceSrcValue::cachedFont):
11435         * css/CSSImageSetValue.cpp:
11436         (WebCore::CSSImageSetValue::cachedImageSet):
11437         * css/CSSImageValue.cpp:
11438         (WebCore::CSSImageValue::cachedImage):
11439         * css/CSSImageValue.h:
11440         (WebCore):
11441         (CSSImageValue):
11442         * css/StyleResolver.cpp:
11443         (WebCore::StyleResolver::loadPendingImage):
11444         * css/StyleRuleImport.cpp:
11445         (WebCore::StyleRuleImport::requestStyleSheet):
11446         * css/WebKitCSSSVGDocumentValue.cpp:
11447         (WebCore::WebKitCSSSVGDocumentValue::load):
11448         * css/WebKitCSSShaderValue.cpp:
11449         (WebCore::WebKitCSSShaderValue::cachedShader):
11450         * dom/ScriptElement.cpp:
11451         (WebCore::ScriptElement::requestScript):
11452         * html/HTMLLinkElement.cpp:
11453         (WebCore::HTMLLinkElement::process):
11454         * html/parser/CSSPreloadScanner.cpp:
11455         (WebCore::CSSPreloadScanner::emitRule):
11456         * html/parser/CSSPreloadScanner.h:
11457         (CSSPreloadScanner):
11458         * html/parser/HTMLPreloadScanner.cpp:
11459         (WebCore::PreloadTask::preload):
11460         * loader/ImageLoader.cpp:
11461         (WebCore::ImageLoader::updateFromElement):
11462         * loader/cache/CachedResourceLoader.cpp:
11463         (WebCore::CachedResourceLoader::requestImage):
11464         (WebCore::CachedResourceLoader::requestResource):
11465         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11466         (WebCore):
11467         (WebCore::CachedResourceLoader::preload):
11468         * loader/cache/CachedResourceLoader.h:
11469         (WebCore):
11470         (CachedResourceLoader):
11471         * loader/cache/CachedResourceRequest.cpp:
11472         (WebCore::CachedResourceRequest::CachedResourceRequest):
11473         * loader/cache/CachedResourceRequest.h:
11474         (CachedResourceRequest):
11475         (WebCore::CachedResourceRequest::defer):
11476         (WebCore::CachedResourceRequest::setDefer):
11477         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11478         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11479         * loader/icon/IconLoader.cpp:
11480         (WebCore::IconLoader::startLoading):
11481         * platform/ThreadGlobalData.cpp:
11482         (WebCore::ThreadGlobalData::ThreadGlobalData):
11483         * platform/ThreadGlobalData.h:
11484         (ThreadGlobalData):
11485         * svg/SVGFEImageElement.cpp:
11486         (WebCore::SVGFEImageElement::requestImageResource):
11487         * svg/SVGFontFaceUriElement.cpp:
11488         (WebCore::SVGFontFaceUriElement::loadFont):
11489         * svg/SVGUseElement.cpp:
11490         (WebCore::SVGUseElement::svgAttributeChanged):
11491
11492 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11493
11494         AX: file upload input text value is not exposed through accessibility
11495         https://bugs.webkit.org/show_bug.cgi?id=100583
11496
11497         Reviewed by Beth Dakin.
11498
11499         This is a hard problem to solve on the Mac because there are three pieces of information
11500              1) The type of button 2) The text on the button 3) The text for the value.
11501         I think the best compromise is to label this as a file upload button type in the role description, 
11502         and then expose the file path text as the AXTitle. 
11503         This will give the more relevant information and should be clear what is happening.
11504
11505         Test: platform/mac/accessibility/file-upload-button-subrole.html
11506
11507         * English.lproj/Localizable.strings:
11508         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11509         (-[WebAccessibilityObjectWrapper subrole]):
11510         (-[WebAccessibilityObjectWrapper roleDescription]):
11511         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11512         * platform/LocalizedStrings.cpp:
11513         (WebCore::AXFileUploadButtonText):
11514         * platform/LocalizedStrings.h:
11515
11516 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11517
11518         Unreviewed, rolling out r133944.
11519         http://trac.webkit.org/changeset/133944
11520         https://bugs.webkit.org/show_bug.cgi?id=102118
11521
11522         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11523         #webkit).
11524
11525         * bindings/scripts/CodeGeneratorV8.pm:
11526         (GenerateFunctionCallback):
11527         (GenerateParametersCheck):
11528         (GenerateSingleConstructorCallback):
11529         (GenerateNamedConstructorCallback):
11530         (TypeCanFailConversion):
11531         * dom/Element.cpp:
11532         (WebCore::Element::setAttributeNode):
11533         (WebCore::Element::removeAttributeNode):
11534         * dom/Element.idl:
11535
11536 2012-11-13  Adam Barth  <abarth@webkit.org>
11537
11538         Unreviewed.
11539
11540         Update run-bindings-tests results.
11541
11542         * bindings/scripts/test/V8/V8Float64Array.cpp:
11543         (WebCore::V8Float64Array::dispatchWrapCustom):
11544         (WebCore::V8Float64Array::wrapSlow):
11545         * bindings/scripts/test/V8/V8Float64Array.h:
11546         (WebCore::V8Float64Array::toNative):
11547         (V8Float64Array):
11548         (WebCore):
11549         (WebCore::dispatchWrap):
11550         (WebCore::toV8Object):
11551         (WebCore::toV8):
11552         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11553         (WebCore::V8TestActiveDOMObject::wrapSlow):
11554         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11555         (WebCore::V8TestActiveDOMObject::toNative):
11556         (V8TestActiveDOMObject):
11557         (WebCore):
11558         (WebCore::dispatchWrap):
11559         (WebCore::toV8Object):
11560         (WebCore::toV8):
11561         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11562         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11563         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11564         (WebCore::V8TestCustomNamedGetter::toNative):
11565         (V8TestCustomNamedGetter):
11566         (WebCore):
11567         (WebCore::dispatchWrap):
11568         (WebCore::toV8Object):
11569         (WebCore::toV8):
11570         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11571         (WebCore::V8TestEventConstructor::wrapSlow):
11572         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11573         (WebCore::V8TestEventConstructor::toNative):
11574         (V8TestEventConstructor):
11575         (WebCore):
11576         (WebCore::dispatchWrap):
11577         (WebCore::toV8Object):
11578         (WebCore::toV8):
11579         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11580         (WebCore::V8TestEventTarget::wrapSlow):
11581         * bindings/scripts/test/V8/V8TestEventTarget.h:
11582         (WebCore::V8TestEventTarget::toNative):
11583         (V8TestEventTarget):
11584         (WebCore):
11585         (WebCore::dispatchWrap):
11586         (WebCore::toV8Object):
11587         (WebCore::toV8):
11588         * bindings/scripts/test/V8/V8TestException.cpp:
11589         (WebCore::V8TestException::wrapSlow):
11590         * bindings/scripts/test/V8/V8TestException.h:
11591         (WebCore::V8TestException::toNative):
11592         (V8TestException):
11593         (WebCore):
11594         (WebCore::dispatchWrap):
11595         (WebCore::toV8Object):
11596         (WebCore::toV8):
11597         * bindings/scripts/test/V8/V8TestInterface.cpp:
11598         (WebCore::V8TestInterface::wrapSlow):
11599         * bindings/scripts/test/V8/V8TestInterface.h:
11600         (WebCore::V8TestInterface::toNative):
11601         (V8TestInterface):
11602         (WebCore):
11603         (WebCore::dispatchWrap):
11604         (WebCore::toV8Object):
11605         (WebCore::toV8):
11606         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11607         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11608         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11609         (WebCore::V8TestMediaQueryListListener::toNative):
11610         (V8TestMediaQueryListListener):
11611         (WebCore):
11612         (WebCore::dispatchWrap):
11613         (WebCore::toV8Object):
11614         (WebCore::toV8):
11615         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11616         (WebCore::V8TestNamedConstructor::wrapSlow):
11617         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11618         (WebCore::V8TestNamedConstructor::toNative):
11619         (V8TestNamedConstructor):
11620         (WebCore):
11621         (WebCore::dispatchWrap):
11622         (WebCore::toV8Object):
11623         (WebCore::toV8):
11624         * bindings/scripts/test/V8/V8TestNode.cpp:
11625         (WebCore::V8TestNode::wrapSlow):
11626         * bindings/scripts/test/V8/V8TestNode.h:
11627         (WebCore::V8TestNode::toNative):
11628         (V8TestNode):
11629         (WebCore):
11630         (WebCore::dispatchWrap):
11631         (WebCore::toV8Object):
11632         (WebCore::toV8):
11633         (WebCore::toV8Fast):
11634         * bindings/scripts/test/V8/V8TestObj.cpp:
11635         (WebCore::V8TestObj::wrapSlow):
11636         * bindings/scripts/test/V8/V8TestObj.h:
11637         (WebCore::V8TestObj::toNative):
11638         (V8TestObj):
11639         (WebCore):
11640         (WebCore::dispatchWrap):
11641         (WebCore::toV8Object):
11642         (WebCore::toV8):
11643         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11644         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11645         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11646         (WebCore::V8TestOverloadedConstructors::toNative):
11647         (V8TestOverloadedConstructors):
11648         (WebCore):
11649         (WebCore::dispatchWrap):
11650         (WebCore::toV8Object):
11651         (WebCore::toV8):
11652         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11653         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11654         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11655         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11656         (V8TestSerializedScriptValueInterface):
11657         (WebCore):
11658         (WebCore::dispatchWrap):
11659         (WebCore::toV8Object):
11660         (WebCore::toV8):
11661
11662 2012-11-13  Adam Barth  <abarth@webkit.org>
11663
11664         Unreviewed.
11665
11666         Speculative build fix for Qt.
11667
11668         * dom/make_names.pl:
11669         (printWrapperFactoryCppFile):
11670
11671 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11672
11673         Allow painting outside overflow clip in accelerated scrolling layers
11674         https://bugs.webkit.org/show_bug.cgi?id=100524
11675
11676         Reviewed by Simon Fraser.
11677
11678         In preparation for avoiding repaints when scrolling child layers, make it
11679         possible to paint outside the overflow clip.
11680
11681         Test: compositing/overflow/updating-scrolling-content.html
11682
11683         * rendering/LayoutState.h:
11684         (LayoutState):
11685         * rendering/RenderBlock.cpp:
11686         (WebCore::RenderBlock::paint):
11687         * rendering/RenderBox.cpp:
11688         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11689         * rendering/RenderLayer.cpp:
11690         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11691
11692 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11693
11694         Port SimpleFontDataWin.cpp to WinCE
11695         https://bugs.webkit.org/show_bug.cgi?id=97889
11696
11697         Reviewed by Brent Fulgham.
11698
11699         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11700         Also cleaned up the include headers.
11701
11702         * platform/graphics/win/SimpleFontDataWin.cpp:
11703         (WebCore::SimpleFontData::initGDIFont):
11704         (WebCore::SimpleFontData::platformDestroy):
11705         (WebCore::SimpleFontData::boundsForGDIGlyph):
11706         (WebCore):
11707         (WebCore::SimpleFontData::widthForGDIGlyph):
11708
11709 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11710
11711         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11712
11713         Not reviewed: moved css file in gypi.
11714
11715         * WebCore.gypi:
11716
11717 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11718
11719         Unreviewed, rolling out r134434.
11720         http://trac.webkit.org/changeset/134434
11721         https://bugs.webkit.org/show_bug.cgi?id=102072
11722
11723         The test that was added asserts in loader.
11724
11725         * loader/FrameLoader.cpp:
11726         (WebCore::createWindow):
11727         * page/DOMWindow.cpp:
11728         (WebCore):
11729         (WebCore::DOMWindow::adjustWindowRect):
11730         (WebCore::DOMWindow::moveBy):
11731         (WebCore::DOMWindow::moveTo):
11732         (WebCore::DOMWindow::resizeBy):
11733         (WebCore::DOMWindow::resizeTo):
11734         (WebCore::DOMWindow::open):
11735         (WebCore::DOMWindow::showModalDialog):
11736         * page/DOMWindow.h:
11737         (DOMWindow):
11738
11739 2012-11-13  Dan Carney  <dcarney@google.com>
11740
11741         [V8] More efficient wrapper dispatch
11742         https://bugs.webkit.org/show_bug.cgi?id=102082
11743
11744         Reviewed by Adam Barth.
11745
11746         Dispatching a call to V8Whatever::wrap involved a chain
11747         of calls, each of which checked its wrapper cache.
11748         This refactor gives calls only 2 choices of functions to call:
11749         toV8 and toV8Object instead of wrap. wrap has been renamed to
11750         dispatchWrap and no longer contains cache checks.
11751         Additionally, classes which require a custom toV8 function
11752         have had all wrapping and caching calls removed, as they could
11753         not have been accessed.
11754
11755         No new tests. Sufficiently covered.
11756
11757         * Modules/indexeddb/IDBAny.idl:
11758         * Modules/indexeddb/IDBKey.idl:
11759         * WebCore.gypi:
11760         * bindings/scripts/CodeGeneratorV8.pm:
11761         (GenerateHeader):
11762         (GenerateNormalAttrGetter):
11763         (GenerateImplementation):
11764         (GenerateToV8Converters):
11765         * bindings/scripts/IDLAttributes.txt:
11766         * bindings/v8/SerializedScriptValue.cpp:
11767         * bindings/v8/custom/V8BlobCustom.cpp:
11768         (WebCore::V8Blob::dispatchWrapCustom):
11769         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11770         (WebCore::V8CSSRule::dispatchWrapCustom):
11771         * bindings/v8/custom/V8CSSValueCustom.cpp:
11772         (WebCore::V8CSSValue::dispatchWrapCustom):
11773         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11774         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11775         * bindings/v8/custom/V8DataViewCustom.cpp:
11776         (WebCore):
11777         (WebCore::V8DataView::dispatchWrapCustom):
11778         * bindings/v8/custom/V8DocumentCustom.cpp:
11779         (WebCore::V8Document::dispatchWrapCustom):
11780         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11781         (WebCore):
11782         (WebCore::V8Element::dispatchWrapCustom):
11783         * bindings/v8/custom/V8EntryCustom.cpp:
11784         (WebCore::V8Entry::dispatchWrapCustom):
11785         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11786         (WebCore::V8EntrySync::dispatchWrapCustom):
11787         * bindings/v8/custom/V8EventCustom.cpp:
11788         (WebCore):
11789         (WebCore::V8Event::dispatchWrapCustom):
11790         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11791         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11792         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11793         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11794         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11795         (WebCore::V8HTMLElement::dispatchWrapCustom):
11796         * bindings/v8/custom/V8ImageDataCustom.cpp:
11797         (WebCore::V8ImageData::dispatchWrapCustom):
11798         * bindings/v8/custom/V8NodeCustom.cpp:
11799         (WebCore::V8Node::dispatchWrapCustom):
11800         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11801         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11802         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11803         (WebCore::V8SVGDocument::dispatchWrapCustom):
11804         * bindings/v8/custom/V8SVGElementCustom.cpp:
11805         (WebCore::V8SVGElement::dispatchWrapCustom):
11806         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11807         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11808         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11809         (WebCore::V8StyleSheet::dispatchWrapCustom):
11810         * dom/Element.idl:
11811         * dom/make_names.pl:
11812         (printWrapperFunctions):
11813         (printWrapperFactoryCppFile):
11814         (printWrapperFactoryHeaderFile):
11815         * html/MicroDataItemValue.idl:
11816         * inspector/ScriptProfile.idl:
11817         * inspector/ScriptProfileNode.idl:
11818         * page/DOMWindow.idl:
11819         * workers/WorkerContext.idl:
11820
11821 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11822
11823         Unreviewed, rolling out r134367.
11824         http://trac.webkit.org/changeset/134367
11825         https://bugs.webkit.org/show_bug.cgi?id=100738
11826
11827         Speculative rollout, could have cause Dromaeo setAttribute
11828         perf regression.
11829
11830         * dom/Element.cpp:
11831         (WebCore::Element::attributeChanged):
11832         (WebCore::checkNeedsStyleInvalidationForClassChange):
11833         (WebCore::Element::classAttributeChanged):
11834
11835 2012-11-13  Marja Hölttä  <marja@chromium.org>
11836
11837         Add initiator to CachedResourceRequest.
11838         https://bugs.webkit.org/show_bug.cgi?id=101935
11839
11840         Reviewed by Adam Barth.
11841
11842         Motivation: Chromium needs to know which elements request a
11843         resource (such as an image or a script) (bug 92761). In addition,
11844         for exposing resource timing information (bug 84883) we need to
11845         store the initiator, and this is the first step towards it.
11846
11847         No new tests: No visible change in behavior.
11848
11849         * CMakeLists.txt:
11850         * GNUmakefile.list.am:
11851         * Target.pri:
11852         * WebCore.gypi:
11853         * WebCore.vcproj/WebCore.vcproj:
11854         * WebCore.xcodeproj/project.pbxproj:
11855         * css/CSSCrossfadeValue.cpp:
11856         (WebCore::cachedImageForCSSValue):
11857         * css/CSSCursorImageValue.cpp:
11858         (WebCore::CSSCursorImageValue::cachedImage):
11859         * css/CSSFontFaceSrcValue.cpp:
11860         (WebCore::CSSFontFaceSrcValue::cachedFont):
11861         * css/CSSImageSetValue.cpp:
11862         (WebCore::CSSImageSetValue::cachedImageSet):
11863         * css/CSSImageValue.cpp:
11864         (WebCore::CSSImageValue::cachedImage):
11865         * css/CSSImageValue.h:
11866         (WebCore):
11867         (CSSImageValue):
11868         * css/StyleResolver.cpp:
11869         (WebCore::StyleResolver::loadPendingImage):
11870         * css/StyleRuleImport.cpp:
11871         (WebCore::StyleRuleImport::requestStyleSheet):
11872         * css/WebKitCSSSVGDocumentValue.cpp:
11873         (WebCore::WebKitCSSSVGDocumentValue::load):
11874         * css/WebKitCSSShaderValue.cpp:
11875         (WebCore::WebKitCSSShaderValue::cachedShader):
11876         * dom/ScriptElement.cpp:
11877         (WebCore::ScriptElement::requestScript):
11878         * html/HTMLLinkElement.cpp:
11879         (WebCore::HTMLLinkElement::process):
11880         * html/parser/CSSPreloadScanner.cpp:
11881         (WebCore::CSSPreloadScanner::emitRule):
11882         * html/parser/CSSPreloadScanner.h:
11883         (CSSPreloadScanner):
11884         * html/parser/HTMLPreloadScanner.cpp:
11885         (WebCore::PreloadTask::preload):
11886         * loader/ImageLoader.cpp:
11887         (WebCore::ImageLoader::updateFromElement):
11888         * loader/cache/CachedResourceLoader.cpp:
11889         (WebCore::CachedResourceLoader::requestImage):
11890         (WebCore::CachedResourceLoader::requestResource):
11891         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11892         (WebCore):
11893         (WebCore::CachedResourceLoader::preload):
11894         * loader/cache/CachedResourceLoader.h:
11895         (WebCore):
11896         (CachedResourceLoader):
11897         * loader/cache/CachedResourceRequest.cpp:
11898         (WebCore::CachedResourceRequest::CachedResourceRequest):
11899         (WebCore):
11900         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11901         (WebCore::CachedResourceRequest::setInitiator):
11902         (WebCore::CachedResourceRequest::initiatorName):
11903         (WebCore::CachedResourceRequest::initiatorDocument):
11904         (WebCore::CachedResourceRequest::initiatorElement):
11905         * loader/cache/CachedResourceRequest.h:
11906         (WebCore):
11907         (WebCore::CachedResourceRequest::setOptions):
11908         (WebCore::CachedResourceRequest::defer):
11909         (WebCore::CachedResourceRequest::setDefer):
11910         (CachedResourceRequest):
11911         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11912         (WebCore):
11913         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11914         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11915         (WebCore):
11916         (CachedResourceRequestInitiators):
11917         (WebCore::cachedResourceRequestInitiators):
11918         * loader/icon/IconLoader.cpp:
11919         (WebCore::IconLoader::startLoading):
11920         * platform/ThreadGlobalData.cpp:
11921         (WebCore::ThreadGlobalData::ThreadGlobalData):
11922         * platform/ThreadGlobalData.h:
11923         (WebCore):
11924         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11925         (ThreadGlobalData):
11926         * svg/SVGFEImageElement.cpp:
11927         (WebCore::SVGFEImageElement::requestImageResource):
11928         * svg/SVGFontFaceUriElement.cpp:
11929         (WebCore::SVGFontFaceUriElement::loadFont):
11930         * svg/SVGUseElement.cpp:
11931         (WebCore::SVGUseElement::svgAttributeChanged):
11932
11933 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11934
11935         Unreviewed, rolling out r134345.
11936         http://trac.webkit.org/changeset/134345
11937         https://bugs.webkit.org/show_bug.cgi?id=102106
11938
11939         Incomplete support for NATIVE_TYPE_ERR in objc and other
11940         bindings (Requested by jsbell on #webkit).
11941
11942         * Modules/mediastream/MediaConstraintsImpl.cpp:
11943         (WebCore::MediaConstraintsImpl::create):
11944         * Modules/mediastream/MediaStreamTrackList.cpp:
11945         (WebCore::MediaStreamTrackList::add):
11946         (WebCore::MediaStreamTrackList::remove):
11947         * Modules/mediastream/RTCDataChannel.cpp:
11948         (WebCore::RTCDataChannel::setBinaryType):
11949         * Modules/mediastream/RTCIceCandidate.cpp:
11950         (WebCore::RTCIceCandidate::create):
11951         * Modules/mediastream/RTCPeerConnection.cpp:
11952         (WebCore::RTCPeerConnection::parseConfiguration):
11953         (WebCore::RTCPeerConnection::createOffer):
11954         (WebCore::RTCPeerConnection::createAnswer):
11955         (WebCore::RTCPeerConnection::setLocalDescription):
11956         (WebCore::RTCPeerConnection::setRemoteDescription):
11957         (WebCore::RTCPeerConnection::addIceCandidate):
11958         (WebCore::RTCPeerConnection::addStream):
11959         (WebCore::RTCPeerConnection::removeStream):
11960         * Modules/mediastream/RTCSessionDescription.cpp:
11961         (WebCore::RTCSessionDescription::create):
11962         (WebCore::RTCSessionDescription::setType):
11963         * bindings/js/CallbackFunction.cpp:
11964         (WebCore::checkFunctionOnlyCallback):
11965         * bindings/js/JSCustomXPathNSResolver.cpp:
11966         (WebCore::JSCustomXPathNSResolver::create):
11967         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
11968         (WebCore::JSHTMLOptionsCollection::add):
11969         * bindings/js/JSHTMLSelectElementCustom.cpp:
11970         (WebCore::selectIndexSetter):
11971         * bindings/js/JSMutationObserverCustom.cpp:
11972         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
11973         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11974         (WebCore::JSSQLResultSetRowList::item):
11975         * bindings/js/JSSQLTransactionCustom.cpp:
11976         (WebCore::JSSQLTransaction::executeSql):
11977         * bindings/js/JSSQLTransactionSyncCustom.cpp:
11978         (WebCore::JSSQLTransactionSync::executeSql):
11979         * bindings/scripts/CodeGeneratorJS.pm:
11980         (GenerateParametersCheck):
11981         * bindings/scripts/CodeGeneratorObjC.pm:
11982         (GenerateImplementation):
11983         * bindings/scripts/CodeGeneratorV8.pm:
11984         (GenerateFunctionCallString):
11985         * bindings/v8/V8Callback.h:
11986         (WebCore::createFunctionOnlyCallback):
11987         * bindings/v8/V8Collection.cpp:
11988         (WebCore::toOptionsCollectionSetter):
11989         * bindings/v8/custom/V8DocumentCustom.cpp:
11990         (WebCore::V8Document::evaluateCallback):
11991         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
11992         (WebCore::V8HTMLOptionsCollection::addCallback):
11993         * bindings/v8/custom/V8MutationObserverCustom.cpp:
11994         (WebCore::V8MutationObserver::constructorCallback):
11995         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
11996         (WebCore::V8SQLTransaction::executeSqlCallback):
11997         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
11998         (WebCore::V8SQLTransactionSync::executeSqlCallback):
11999         * dom/DOMCoreException.idl:
12000         * html/HTMLElement.cpp:
12001         (WebCore::HTMLElement::insertAdjacentElement):
12002         * html/HTMLMediaElement.cpp:
12003         (WebCore::HTMLMediaElement::webkitAddKey):
12004         * html/HTMLOptionsCollection.cpp:
12005         (WebCore::HTMLOptionsCollection::add):
12006         * html/canvas/CanvasRenderingContext2D.cpp:
12007         (WebCore::CanvasRenderingContext2D::drawImage):
12008         (WebCore::CanvasRenderingContext2D::createPattern):
12009         (WebCore::CanvasRenderingContext2D::putImageData):
12010         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
12011         * page/Crypto.cpp:
12012         (WebCore::Crypto::getRandomValues):
12013         * page/DOMSelection.cpp:
12014         (WebCore::DOMSelection::extend):
12015         * svg/properties/SVGTransformListPropertyTearOff.h:
12016         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
12017
12018 2012-11-13  Erik Arvidsson  <arv@chromium.org>
12019
12020         Update DOMException name: HierarchyRequestError
12021         https://bugs.webkit.org/show_bug.cgi?id=102092
12022
12023         Reviewed by Ojan Vafai.
12024
12025         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
12026
12027         Updated existing tests.
12028
12029         * dom/DOMCoreException.cpp:
12030
12031 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
12032
12033         Clean up use of adjustWindowRect
12034         https://bugs.webkit.org/show_bug.cgi?id=102072
12035
12036         Reviewed by Alexis Menard.
12037
12038         Tested by fast/dom/Window/open-window-min-size.html
12039
12040         * loader/FrameLoader.cpp:
12041         (WebCore::createWindow):
12042
12043             Validate the window size here so that it is not just done for
12044             .open, but also for .showModalDialog. This is compatible with
12045             other browsers such as IE and Firefox (though IE > 6, enforces
12046             a minimum width of 250 instead of 100 as Firefox and us.)
12047
12048         * page/DOMWindow.cpp:
12049         (WebCore):
12050         (WebCore::DOMWindow::adjustWindowRect):
12051
12052             Make it a static method which only takes page. It was never
12053             called from anywhere without a valid page, so the page check
12054             has been turned into an assert, and two of the arguments have
12055             been removed as they can be accessed via the page.
12056
12057         (WebCore::DOMWindow::moveBy):
12058         (WebCore::DOMWindow::moveTo):
12059         (WebCore::DOMWindow::resizeBy):
12060         (WebCore::DOMWindow::resizeTo):
12061
12062             Update use of adjustWindowRect.
12063
12064         (WebCore::DOMWindow::open):
12065
12066             Avoid modifying the WindowFeatures as the WebCore::createWindow
12067             validates and adjusts the arguments.
12068
12069         * page/DOMWindow.h:
12070         (DOMWindow):
12071
12072 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
12073
12074         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
12075         https://bugs.webkit.org/show_bug.cgi?id=97736
12076
12077         Reviewed by Andreas Kling.
12078
12079         Rename properties to match updated spec.
12080
12081         Tests: fast/exclusions/shape-margin-parsing.html
12082                fast/exclusions/shape-padding-parsing.html
12083
12084         * css/CSSComputedStyleDeclaration.cpp:
12085         (WebCore):
12086         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12087         * css/CSSParser.cpp:
12088         (WebCore::isSimpleLengthPropertyID):
12089         (WebCore::CSSParser::parseValue):
12090         * css/CSSProperty.cpp:
12091         (WebCore::CSSProperty::isInheritedProperty):
12092         * css/CSSPropertyNames.in:
12093         * css/StyleBuilder.cpp:
12094         (WebCore::StyleBuilder::StyleBuilder):
12095         * css/StylePropertySet.cpp:
12096         (WebCore::StylePropertySet::asText):
12097         * css/StylePropertyShorthand.cpp:
12098         (WebCore::webkitWrapShorthand):
12099         * css/StyleResolver.cpp:
12100         (WebCore::StyleResolver::applyProperty):
12101         * rendering/style/RenderStyle.cpp:
12102         (WebCore::RenderStyle::diff):
12103         * rendering/style/RenderStyle.h:
12104         * rendering/style/StyleRareNonInheritedData.cpp:
12105         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12106         (WebCore::StyleRareNonInheritedData::operator==):
12107         * rendering/style/StyleRareNonInheritedData.h:
12108         (StyleRareNonInheritedData):
12109
12110 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12111
12112         Unreviewed, rolling out r134418.
12113         http://trac.webkit.org/changeset/134418
12114         https://bugs.webkit.org/show_bug.cgi?id=101903
12115
12116         The newly added test is crashing on cr-win.
12117
12118         * dom/ElementShadow.cpp:
12119         * dom/ElementShadow.h:
12120         * html/HTMLInputElement.cpp:
12121         (WebCore::HTMLInputElement::updateType):
12122         (WebCore::HTMLInputElement::setIndeterminate):
12123         * html/HTMLProgressElement.cpp:
12124         (WebCore::HTMLProgressElement::didElementStateChange):
12125         * html/shadow/SelectRuleFeatureSet.cpp:
12126         (WebCore::SelectRuleFeatureSet::add):
12127         (WebCore::SelectRuleFeatureSet::clear):
12128         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12129         * html/shadow/SelectRuleFeatureSet.h:
12130         (SelectRuleFeatureSet):
12131
12132 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12133
12134         Unreviewed, rolling out r134391.
12135         http://trac.webkit.org/changeset/134391
12136         https://bugs.webkit.org/show_bug.cgi?id=99660
12137
12138         Speculative rollout, trying to fix browser_tests failure.
12139
12140         * English.lproj/localizedStrings.js:
12141         * inspector/Inspector.json:
12142         * inspector/InspectorClient.h:
12143         * inspector/InspectorPageAgent.cpp:
12144         (PageAgentState):
12145         (WebCore::InspectorPageAgent::enable):
12146         (WebCore::InspectorPageAgent::disable):
12147         * inspector/InspectorPageAgent.h:
12148         * inspector/front-end/Settings.js:
12149         * inspector/front-end/SettingsScreen.js:
12150         (WebInspector.GenericSettingsTab):
12151         * inspector/front-end/inspector.js:
12152         (WebInspector.doLoadedDone):
12153
12154 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12155
12156         Unreviewed, rolling out r134205.
12157         http://trac.webkit.org/changeset/134205
12158         https://bugs.webkit.org/show_bug.cgi?id=102093
12159
12160         Broke webkit-flow-inlines-dynamic.html on several ports
12161         (Requested by mihnea on #webkit).
12162
12163         * css/StyleResolver.cpp:
12164         (WebCore::StyleResolver::isValidRegionStyleProperty):
12165         * rendering/InlineBox.cpp:
12166         * rendering/InlineBox.h:
12167         (WebCore):
12168         (InlineBox):
12169         * rendering/InlineFlowBox.cpp:
12170         (WebCore::InlineFlowBox::addToLine):
12171         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12172         * rendering/RenderRegion.cpp:
12173         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12174         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12175         (WebCore::RenderRegion::computeStyleInRegion):
12176         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12177         (WebCore::RenderRegion::setObjectStyleInRegion):
12178         (WebCore::RenderRegion::clearObjectStyleInRegion):
12179         * rendering/RenderRegion.h:
12180         (RenderRegion):
12181         (ObjectRegionStyleInfo):
12182
12183 2012-11-13  Andreas Kling  <kling@webkit.org>
12184
12185         Remove the non-const overload of ElementAttributeData::inlineStyle().
12186
12187         Rubber-stamped by Anders Koivisto.
12188
12189         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12190
12191         * dom/ElementAttributeData.h:
12192
12193 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12194
12195         [Chromium] Enable input type month/week
12196         https://bugs.webkit.org/show_bug.cgi?id=102042
12197
12198         Reviewed by Kent Tamura.
12199
12200         Enable input type month/week for Chromium.
12201
12202         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12203
12204         * bindings/generic/RuntimeEnabledFeatures.cpp:
12205         (WebCore):
12206
12207 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12208
12209         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12210         https://bugs.webkit.org/show_bug.cgi?id=101906
12211
12212         Reviewed by Dimitri Glazkov.
12213
12214         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12215         setPseudo()/pseudo() instead.
12216
12217         No new tests, covered by existing tests.
12218
12219         * html/HTMLMeterElement.cpp:
12220         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12221         it anywhere, we have to set it into pseudo attribute here.
12222         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12223         * html/shadow/MeterShadowElement.cpp:
12224         (WebCore::MeterInnerElement::MeterInnerElement):
12225         (WebCore::MeterValueElement::valuePseudoId):
12226         * html/shadow/MeterShadowElement.h:
12227         (MeterInnerElement):
12228         (WebCore::MeterBarElement::MeterBarElement):
12229         (MeterBarElement):
12230         (WebCore::MeterValueElement::MeterValueElement):
12231         (WebCore::MeterValueElement::updatePseudo):
12232         (MeterValueElement):
12233
12234 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12235
12236         Changing pseudoClass (:indeterminate) should cause distribution
12237         https://bugs.webkit.org/show_bug.cgi?id=101903
12238
12239         Reviewed by Dimitri Glazkov.
12240
12241         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12242         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12243
12244         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12245         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12246
12247         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12248                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12249
12250         * dom/ElementShadow.cpp:
12251         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12252         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12253         here.
12254         (WebCore):
12255         * dom/ElementShadow.h:
12256         (WebCore):
12257         * html/HTMLInputElement.cpp:
12258         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12259         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12260         * html/HTMLProgressElement.cpp:
12261         (WebCore::HTMLProgressElement::didElementStateChange):
12262         * html/shadow/SelectRuleFeatureSet.cpp:
12263         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12264         (WebCore::SelectRuleFeatureSet::add):
12265         (WebCore::SelectRuleFeatureSet::clear):
12266         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12267         * html/shadow/SelectRuleFeatureSet.h:
12268         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12269         (SelectRuleFeatureSet):
12270
12271 2012-11-13  Andreas Kling  <kling@webkit.org>
12272
12273         Exploit ElementAttributeData sharing in Node.cloneNode.
12274         <http://webkit.org/b/101374>
12275
12276         Reviewed by Anders Carlsson.
12277
12278         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12279         If the source data is immutable, simply ref it from the new node at virtually no cost.
12280
12281         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12282         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12283         and memory in the long run.
12284
12285         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12286
12287         * dom/Element.cpp:
12288         (WebCore::Element::cloneAttributesFromElement):
12289
12290             Move attribute data cloning logic from ElementAttributeData to Element.
12291
12292         * dom/ElementAttributeData.cpp:
12293         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12294         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12295         (WebCore::ElementAttributeData::ElementAttributeData):
12296         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12297         (WebCore::ElementAttributeData::makeMutableCopy):
12298         (WebCore::ElementAttributeData::makeImmutableCopy):
12299         * dom/ElementAttributeData.h:
12300         (ElementAttributeData):
12301         (ImmutableElementAttributeData):
12302         (MutableElementAttributeData):
12303
12304             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12305             Share some code in the common base class constructor.
12306
12307 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12308
12309         Unreviewed. Build fix of V8 bindings.
12310
12311         * bindings/v8/V8DOMWrapper.cpp:
12312         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12313
12314 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12315
12316         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12317         https://bugs.webkit.org/show_bug.cgi?id=102071
12318
12319         Reviewed by Pavel Feldman.
12320
12321         * inspector/front-end/CanvasProfileView.js:
12322         (WebInspector.CanvasProfileView):
12323         (WebInspector.CanvasProfileView.prototype.dispose):
12324         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12325         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12326         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12327         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12328         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12329         (WebInspector.CanvasProfileView.prototype._createCallNode):
12330         * inspector/front-end/canvasProfiler.css:
12331         (#canvas-replay-image.wait):
12332
12333 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12334
12335         Web Inspector: Settings screen: some panel shortcuts are missing
12336         https://bugs.webkit.org/show_bug.cgi?id=101026
12337
12338         Reviewed by Pavel Feldman.
12339
12340         Panels, that have not been loaded by the time shortcuts view was
12341         initialized, had no chance to register shortcuts.
12342
12343         Solution: move shortcut registration (for shortcuts screen) to panel
12344         descriptors.
12345
12346         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12347         parameter type for raw string to key descriptor object.
12348
12349         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12350         * WebCore.vcproj/WebCore.vcproj: Ditto.
12351         * inspector/compile-front-end.py: Ditto.
12352         * inspector/front-end/WebKit.qrc: Ditto.
12353         * inspector/front-end/inspector.html: Ditto.
12354         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12355         * inspector/front-end/GoToLineDialog.js: Ditto.
12356         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12357         shortcuts registration.
12358         * inspector/front-end/ElementsPanel.js: Ditto.
12359         * inspector/front-end/ScriptsPanel.js: Ditto.
12360         * inspector/front-end/StylesSidebarPane.js: Ditto.
12361         * inspector/front-end/TimelinePanel.js: Ditto.
12362         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12363         readability.
12364         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12365         shortcuts registration and key descriptor constants.
12366         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12367         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12368         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12369         "registerShortcuts" method accept array of key descriptors.
12370         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12371         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12372         type from string to key descriptor.
12373         * inspector/front-end/inspector.js: Register shortcuts using
12374         panel descriptors.
12375         (WebInspector._panelDescriptors): Removed duplicate line.
12376
12377 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12378
12379         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12380         https://bugs.webkit.org/show_bug.cgi?id=102060
12381
12382         Reviewed by Zoltan Herczeg.
12383
12384         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12385         These functions are three times faster with this intrinsics optimizations.
12386
12387         * platform/graphics/GraphicsContext3D.cpp:
12388         (WebCore):
12389         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12390         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12391         (ARM):
12392         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12393         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12394         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12395
12396 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12397
12398         [Qt] Enable Mutation observer
12399         https://bugs.webkit.org/show_bug.cgi?id=102066
12400
12401         Reviewed by Pavel Feldman.
12402
12403         * DerivedSources.pri: Add missing IDL files.
12404
12405 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12406
12407         [V8] Make isValidDOMObject() static
12408         https://bugs.webkit.org/show_bug.cgi?id=101914
12409
12410         Reviewed by Adam Barth.
12411
12412         isValidDOMObject() is used by DOMWrapper.cpp only.
12413
12414         No tests. No change in behavior.
12415
12416         * bindings/v8/V8DOMWrapper.cpp:
12417         (WebCore::isValidDOMObject):
12418         (WebCore):
12419         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12420         * bindings/v8/V8DOMWrapper.h:
12421         (V8DOMWrapper):
12422
12423 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12424
12425         [CSSRegions] Incorrect computed height for content with region-break-before
12426         https://bugs.webkit.org/show_bug.cgi?id=101862
12427
12428         Reviewed by Julien Chaffraix.
12429
12430         When processing the region breaks for auto-height regions, we skipped the case
12431         when the region-break-before occurred in the first region in the chain which was
12432         an auto-height region. Because of that, the region computed height was not 0
12433         as it was supposed to be, but rather LayoutUnit::max() / 2.
12434
12435         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12436
12437         * rendering/RenderFlowThread.cpp:
12438         (WebCore::RenderFlowThread::addForcedRegionBreak):
12439         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12440         and the first region in chain is an auto-height region.
12441         * rendering/RenderRegion.cpp:
12442         (WebCore::RenderRegion::updateLogicalHeight):
12443         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12444
12445 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12446
12447         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12448         https://bugs.webkit.org/show_bug.cgi?id=102058
12449
12450         Reviewed by Pavel Feldman.
12451
12452         * bindings/v8/V8PerIsolateData.cpp:
12453         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12454         each element of the vector as generic vector instrumentation will take care of it.
12455         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12456         we don't count its by the pointer to the base class which may differ from the actual
12457         object address.
12458         (WebCore::Image::reportMemoryUsage):
12459         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12460         (ImageObserver):
12461
12462 2012-11-13  Eberhard Graether  <egraether@google.com>
12463
12464         checkbox to toggle FPS counter in the inspector's settings
12465         https://bugs.webkit.org/show_bug.cgi?id=99660
12466
12467         Reviewed by Pavel Feldman.
12468
12469         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12470
12471         No new tests.
12472
12473         * English.lproj/localizedStrings.js:
12474         * inspector/Inspector.json:
12475         * inspector/InspectorClient.h:
12476         (WebCore::InspectorClient::canShowFPSCounter):
12477         (WebCore::InspectorClient::setShowFPSCounter):
12478         (InspectorClient):
12479         * inspector/InspectorPageAgent.cpp:
12480         (PageAgentState):
12481         (WebCore::InspectorPageAgent::enable):
12482         (WebCore::InspectorPageAgent::disable):
12483         (WebCore::InspectorPageAgent::canShowFPSCounter):
12484         (WebCore):
12485         (WebCore::InspectorPageAgent::setShowFPSCounter):
12486         * inspector/InspectorPageAgent.h:
12487         * inspector/front-end/Settings.js:
12488         * inspector/front-end/SettingsScreen.js:
12489         (WebInspector.GenericSettingsTab):
12490         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12491         * inspector/front-end/inspector.js:
12492         (WebInspector.doLoadedDone):
12493
12494 2012-11-12  Kent Tamura  <tkent@chromium.org>
12495
12496         Unable to set valid time value to input[type=time] with user interaction in some cases
12497         https://bugs.webkit.org/show_bug.cgi?id=102048
12498
12499         Reviewed by Kentaro Hara.
12500
12501         The implementations of shouldMillisecondFieldReadOnly,
12502         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12503         incorrect. We need to check if a part of the minimum value matches to
12504         the corresponding part of the current value.
12505
12506         Also, we had better check hour field editability.
12507
12508         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12509
12510         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12511         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12512         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12513         * html/shadow/DateTimeEditElement.cpp:
12514         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12515         (WebCore::DateTimeEditBuilder::visitField):
12516         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12517         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12518         Added. An hour field should be read-only if the step value is a multiple
12519         of a day and the hour part of the minimum value matches to the hour part
12520         of the value.
12521         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12522         A millisecond field should be read-only if the step value is a multiple
12523         of one second and the millisecond part of the minimum value matches to
12524         the millisecond part of the value.
12525         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12526         A minute field should be read-only if the step value is a multiple of
12527         one hour and the minute part of the minimum value matches to the minute
12528         part of the value.
12529         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12530         A second field should be read-only if the step value is a multiple of
12531         one minute and the second part of the minimum value matches to the second
12532         part of the value.
12533         * platform/Decimal.cpp:
12534         (WebCore::Decimal::remainder):
12535         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12536         make this matches to C99, C++11, ECMAScript behavior.
12537
12538 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12539
12540         Memory instrumentation: MemoryBlock name should not include full path to the block
12541         https://bugs.webkit.org/show_bug.cgi?id=102055
12542
12543         Reviewed by Pavel Feldman.
12544
12545         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12546         intead of fully qualified name.
12547
12548 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12549
12550         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12551         https://bugs.webkit.org/show_bug.cgi?id=101845
12552
12553         Reviewed by Vsevolod Vlasov.
12554
12555         They seem to do nothing.
12556
12557         * inspector/front-end/DefaultTextEditor.js:
12558         (WebInspector.DefaultTextEditor.prototype._textChanged):
12559         (WebInspector.DefaultTextEditor.prototype.editRange):
12560         (WebInspector.TextEditorMainPanel):
12561         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12562         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12563         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12564         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12565         * inspector/front-end/TextEditorModel.js:
12566         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12567
12568 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12569
12570         Remove the custom WebSocket::send for both V8 and JSC
12571         https://bugs.webkit.org/show_bug.cgi?id=101936
12572
12573         Reviewed by Kentaro Hara.
12574
12575         This patch removes the custom WebSocket::send since it isn't needed anymore.
12576
12577         Patch covered by existing tests.
12578
12579         * Modules/websockets/WebSocket.idl:
12580         * UseV8.cmake:
12581         * WebCore.gypi:
12582         * bindings/js/JSWebSocketCustom.cpp:
12583         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12584
12585 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12586
12587         Web Inspector: move indentation logic into TextEditorModel
12588         https://bugs.webkit.org/show_bug.cgi?id=101842
12589
12590         Reviewed by Vsevolod Vlasov.
12591
12592         I'd like to move as much headless logic into the TextEditorModel as possible.
12593         Drive by: removed some dead code, converted getter into function and moved undo
12594         mark state into the model as well.
12595
12596         * inspector/front-end/DefaultTextEditor.js:
12597         (WebInspector.DefaultTextEditor.prototype.editRange):
12598         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12599         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12600         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12601         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12602         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12603         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12604         (WebInspector.TextEditorMainChunk):
12605         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12606         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12607         * inspector/front-end/TextEditorModel.js:
12608         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12609
12610 2012-11-13  Hayato Ito  <hayato@chromium.org>
12611
12612         Unreviewed attempt to fix the chromium mac-build after r134348.
12613
12614         * platform/graphics/mac/FontMac.mm:
12615         (WebCore::Font::drawGlyphs):
12616         * platform/mac/WebCoreSystemInterface.h:
12617         * platform/mac/WebCoreSystemInterface.mm:
12618
12619 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12620
12621         Web Inspector: migrate text editor to mutation observers
12622         https://bugs.webkit.org/show_bug.cgi?id=101841
12623
12624         Reviewed by Vsevolod Vlasov.
12625
12626         Otherwise, we miss notifications on the removed lines.
12627
12628         * inspector/front-end/DefaultTextEditor.js:
12629         (WebInspector.DefaultTextEditor.prototype.wasShown):
12630         (WebInspector.DefaultTextEditor.prototype.willHide):
12631         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12632         (WebInspector.TextEditorMainPanel):
12633         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12634         (WebInspector.TextEditorMainPanel.prototype._willHide):
12635         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12636         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12637         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12638         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12639         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12640         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12641         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12642         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12643         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12644         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12645         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12646         * inspector/front-end/externs.js:
12647         (WebKitMutation):
12648         (WebKitMutationObserver.prototype.observe):
12649         (WebKitMutationObserver.prototype.disconnect):
12650         * inspector/front-end/textEditor.css:
12651         (.debug-fadeout):
12652         (@-webkit-keyframes debug-fadeout):
12653         (to):
12654
12655 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12656
12657         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12658         https://bugs.webkit.org/show_bug.cgi?id=101473
12659
12660         Reviewed by Zoltan Herczeg.
12661
12662         With NEON intrinsics the packing/unpacking functions can be optimized well.
12663         This particular function is about 3 times faster with ARM NEON. On top level tests
12664         the speed up was 1.18x.
12665
12666         * CMakeLists.txt:
12667         * GNUmakefile.am:
12668         * GNUmakefile.list.am:
12669         * Target.pri:
12670         * WebCore.gyp/WebCore.gyp:
12671         * WebCore.gypi:
12672         * WebCore.pri:
12673         * WebCore.xcodeproj/project.pbxproj:
12674         * platform/graphics/GraphicsContext3D.cpp:
12675         (WebCore):
12676         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12677         (WebCore):
12678         (ARM):
12679         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12680         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12681
12682 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12683
12684         Crash when replacing parts of text inputs with content: url(...)
12685         https://bugs.webkit.org/show_bug.cgi?id=101133
12686
12687         Reviewed by Kent Tamura.
12688
12689         Disable directly setting content of elements in an input element's
12690         shadow dom tree, because the setting breaks input element's behavior.
12691
12692         Tests: fast/forms/number/number-content-url-crash.html
12693                fast/forms/search/search-content-url-crash.html
12694
12695         * css/html.css:
12696         (input::-webkit-textfield-decoration-container):
12697         Use important to disable overriding an input element's content
12698         property.
12699         * html/TextFieldInputType.cpp:
12700         (WebCore::TextFieldInputType::attach):
12701         Added ASSERTION. No content should be applied to
12702         input::-webkit-textfield-decoration-container.
12703
12704 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12705
12706         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12707         https://bugs.webkit.org/show_bug.cgi?id=101918
12708
12709         Reviewed by Noam Rosenthal.
12710
12711         Remove TiledBackingStore::rect(), because it is not used anymore.
12712
12713         * platform/graphics/TiledBackingStore.h:
12714         (TiledBackingStore):
12715
12716 2012-11-12  Adam Barth  <abarth@webkit.org>
12717
12718         [V8] We should be able to recover the V8DOMWindowShell more quickly
12719         https://bugs.webkit.org/show_bug.cgi?id=102020
12720
12721         Reviewed by Kentaro Hara.
12722
12723         For isolated worlds, we used to store the V8DOMWindowShell as an
12724         internal field of the inner DOM window. This patch moves the pointer to
12725         an internal field of the v8::Context, which saves us the work of
12726         looking up the inner DOM window.
12727
12728         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12729         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12730         the V8PerContextData when we detach the V8DOMWindowShell from the
12731         frame.)
12732
12733         * bindings/scripts/CodeGeneratorV8.pm:
12734         (GetInternalFields):
12735         * bindings/v8/V8DOMWindowShell.cpp:
12736         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12737         * bindings/v8/V8DOMWindowShell.h:
12738         (WebCore::V8DOMWindowShell::getEntered):
12739         * bindings/v8/V8PerContextData.h:
12740
12741 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12742
12743         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12744         https://bugs.webkit.org/show_bug.cgi?id=101054
12745
12746         Reviewed by Adam Barth.
12747
12748         I'm investigating a Chromium crash bug:
12749         http://code.google.com/p/chromium/issues/detail?id=155942
12750
12751         I've not yet identified the root cause (because I can't reproduce
12752         the crash), but it looks like we are storing NULL pointers to
12753         V8 internal fields. Just in case, we can add an ASSERT() to
12754         guarantee that NULL pointers are never stored. (Also I'm hoping
12755         that this ASSERT() will give me more debug information.)
12756
12757         No tests. No change in behavior.
12758
12759         * bindings/v8/V8DOMWrapper.h:
12760         (WebCore::V8DOMWrapper::setDOMWrapper):
12761
12762 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12763
12764         Changing id, className, or attribute should invalidate distribution
12765         https://bugs.webkit.org/show_bug.cgi?id=100738
12766
12767         Reviewed by Dimitri Glazkov.
12768
12769         When id, className, or attribute is changed, we might have to invalidate distribution.
12770         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12771         and invalidate distribution only if necessary.
12772
12773         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12774         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12775
12776         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12777         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12778
12779         DOM/ModifyAttribute.html
12780         Before this patch:
12781                 median  stdev  min      max    [ms]
12782           1st   115.62   0.67  114.75   117.00
12783           2nd   115.08   1.13  113.25   117.58
12784           3rd   114.75   1.16  113.42   117.83
12785
12786         After this patch:
12787                 median  stdev  min      max    [ms]
12788           1st   102.55   0.95  101.25   104.50
12789           2nd   103.10   0.86  102.20   100.95
12790           3rd   103.30   1.05  102.10   106.65
12791
12792         Tests: fast/dom/shadow/distribution-attribute-modified.html
12793                fast/dom/shadow/distribution-className-modified.html
12794                fast/dom/shadow/distribution-id-modified.html
12795                fast/dom/shadow/reprojection-attribute-modified.html
12796                fast/dom/shadow/reprojection-className-modified.html
12797                fast/dom/shadow/reprojection-id-modified.html
12798
12799         * dom/Element.cpp:
12800         (WebCore::Element::attributeChanged):
12801         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12802         (HasSelectorForClassStyleFunctor):
12803         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12804         (WebCore):
12805         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12806         (HasSelectorForClassDistributionFunctor):
12807         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12808         (WebCore::checkFunctorForClassChange):
12809         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12810         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12811         (WebCore::Element::classAttributeChanged):
12812
12813 2012-11-12  Joe Mason  <jmason@rim.com>
12814
12815         [BlackBerry] NetworkJob should not check if data is received with HEAD
12816         https://bugs.webkit.org/show_bug.cgi?id=102034
12817
12818         Reviewed by George Staikos.
12819
12820         Internal PR: 241391
12821
12822         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12823         have no data.
12824
12825         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12826
12827         * platform/network/blackberry/NetworkJob.cpp:
12828         (WebCore::NetworkJob::NetworkJob):
12829         (WebCore::NetworkJob::initialize):
12830         (WebCore::NetworkJob::shouldNotifyClientFailed):
12831         * platform/network/blackberry/NetworkJob.h:
12832         (NetworkJob):
12833
12834 2012-11-12  Adam Barth  <abarth@webkit.org>
12835
12836         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12837         https://bugs.webkit.org/show_bug.cgi?id=102015
12838
12839         Reviewed by Kentaro Hara.
12840
12841         Previously, Nodes had a special path through
12842         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12843         could find the V8PerContextData quickly. Now that we can get the
12844         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12845         general case. The net consequence is that creation of all DOM objects
12846         should be as fast as Nodes are.
12847
12848         * bindings/scripts/CodeGeneratorV8.pm:
12849         (GenerateToV8Converters):
12850         * bindings/scripts/test/V8/V8Float64Array.cpp:
12851         (WebCore::V8Float64Array::wrapSlow):
12852         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12853         (WebCore::V8TestActiveDOMObject::wrapSlow):
12854         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12855         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12856         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12857         (WebCore::V8TestEventConstructor::wrapSlow):
12858         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12859         (WebCore::V8TestEventTarget::wrapSlow):
12860         * bindings/scripts/test/V8/V8TestException.cpp:
12861         (WebCore::V8TestException::wrapSlow):
12862         * bindings/scripts/test/V8/V8TestInterface.cpp:
12863         (WebCore::V8TestInterface::wrapSlow):
12864         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12865         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12866         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12867         (WebCore::V8TestNamedConstructor::wrapSlow):
12868         * bindings/scripts/test/V8/V8TestNode.cpp:
12869         (WebCore::V8TestNode::wrapSlow):
12870         * bindings/scripts/test/V8/V8TestObj.cpp:
12871         (WebCore::V8TestObj::wrapSlow):
12872         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12873         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12874         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12875         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12876         * bindings/v8/V8Binding.cpp:
12877         * bindings/v8/V8Binding.h:
12878         (WebCore):
12879         * bindings/v8/V8DOMWrapper.cpp:
12880         (WebCore::V8DOMWrapper::instantiateV8Object):
12881         * bindings/v8/V8DOMWrapper.h:
12882         (V8DOMWrapper):
12883
12884 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12885
12886         Some CSS properties are not handled on StyleResolver::applyProperty
12887         https://bugs.webkit.org/show_bug.cgi?id=102027
12888
12889         Reviewed by Gyuyoung Kim.
12890
12891         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12892         need to be handled on StyleResolver::applyProperty.
12893
12894         * css/StyleResolver.cpp:
12895         (WebCore::StyleResolver::applyProperty):
12896
12897 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12898
12899         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12900         https://bugs.webkit.org/show_bug.cgi?id=102031
12901
12902         Reviewed by Beth Dakin.
12903
12904         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12905         and calculateLayerBounds() multiple times for painting a single layer.
12906         
12907         Keep track of whether we've computed the root-relative bounds and do it on demand.
12908         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12909         to functions that need it.
12910
12911         * rendering/RenderLayer.cpp:
12912         (WebCore::RenderLayer::paintLayerContents):
12913         (WebCore::RenderLayer::hitTestLayer):
12914         (WebCore::RenderLayer::calculateRects):
12915         (WebCore::RenderLayer::intersectsDamageRect):
12916         (WebCore::RenderLayer::boundingBox):
12917         (WebCore::RenderLayer::calculateLayerBounds):
12918         * rendering/RenderLayer.h:
12919         * rendering/RenderLayerCompositor.cpp:
12920         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12921
12922 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12923
12924         Change calculateLayerBounds() from a static function to a member function
12925         https://bugs.webkit.org/show_bug.cgi?id=102022
12926
12927         Reviewed by Beth Dakin.
12928
12929         calculateLayerBounds() has grown into a substantial function after
12930         starting live as a little utility function, so make it a member function
12931         of RenderLayer, and adjust callers accordingly.
12932
12933         * rendering/RenderLayer.cpp:
12934         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12935         (WebCore::RenderLayer::paintLayerContents):
12936         (WebCore::RenderLayer::calculateLayerBounds):
12937         * rendering/RenderLayer.h:
12938         * rendering/RenderLayerCompositor.cpp:
12939         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12940
12941 2012-11-12  Alexei Filippov  <alph@chromium.org>
12942
12943         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12944         https://bugs.webkit.org/show_bug.cgi?id=101601
12945
12946         Reviewed by Yury Semikhatsky.
12947
12948         * English.lproj/localizedStrings.js:
12949         * inspector/front-end/NativeMemorySnapshotView.js:
12950         * inspector/front-end/Settings.js:
12951         * inspector/front-end/SettingsScreen.js:
12952         (WebInspector.GenericSettingsTab):
12953
12954 2012-11-10  Dirk Schulze  <krit@webkit.org>
12955
12956         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12957         https://bugs.webkit.org/show_bug.cgi?id=101854
12958
12959         Reviewed by Andreas Kling.
12960
12961         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
12962         blend with themselves. This patch introduces simple interpolation of BasicShapes for
12963         the -webkit-clip-path property.
12964
12965         Test: css3/masking/clip-path-animation.html
12966
12967         * page/animation/CSSPropertyAnimation.cpp:
12968         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
12969             It skips blending on <clipPath> references, polygons and if the shapes are not of
12970             the same type.
12971         (WebCore):
12972         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
12973         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
12974         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
12975             properties.
12976         * rendering/style/BasicShapes.cpp:
12977             The blending is done by each shape itself. This is similar to FilterOperations or
12978             TransformOperations.
12979         (WebCore::BasicShapeRectangle::blend):
12980         (WebCore):
12981         (WebCore::BasicShapeCircle::blend):
12982         (WebCore::BasicShapeEllipse::blend):
12983         (WebCore::BasicShapePolygon::blend):
12984         * rendering/style/BasicShapes.h:
12985             Added new blending functions to header.
12986         (BasicShape):
12987         (BasicShapeRectangle):
12988         (BasicShapeCircle):
12989         (BasicShapeEllipse):
12990         (BasicShapePolygon):
12991
12992 2012-11-12  Adam Barth  <abarth@webkit.org>
12993
12994         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
12995         https://bugs.webkit.org/show_bug.cgi?id=102008
12996
12997         Reviewed by Ojan Vafai.
12998
12999         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
13000         API to get the V8PerContextData associated with a v8::Context much more
13001         quickly. We no longer need to use a hidden property on the inner global
13002         object. This patch will enable future optimizations.
13003
13004         * bindings/v8/V8HiddenPropertyName.h:
13005         (WebCore):
13006         * bindings/v8/V8PerContextData.cpp:
13007         (WebCore::V8PerContextData::dispose):
13008         (WebCore::V8PerContextData::init):
13009         * bindings/v8/V8PerContextData.h:
13010         (WebCore::V8PerContextData::from):
13011
13012 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
13013
13014         Make Frames and HTMLFrameOwnerElement less friendly
13015         https://bugs.webkit.org/show_bug.cgi?id=102003
13016
13017         Reviewed by Ojan Vafai.
13018
13019         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
13020         this patch makes it go through a method to allow future hooks when frames
13021         are associated with owners.
13022
13023         No new tests, this is just a refactor.
13024
13025         * html/HTMLFrameOwnerElement.cpp:
13026         (WebCore::HTMLFrameOwnerElement::setContentFrame):
13027         * html/HTMLFrameOwnerElement.h:
13028         (HTMLFrameOwnerElement):
13029         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
13030         * page/Frame.cpp:
13031         (WebCore::Frame::Frame): Use new methods.
13032
13033 2012-11-12  Beth Dakin  <bdakin@apple.com>
13034
13035         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
13036         https://bugs.webkit.org/show_bug.cgi?id=101787
13037
13038         Reviewed by Simon Fraser.
13039
13040         This patch adds a new member to the GraphicsContextState that tracks 
13041         whether or not fonts should be subpixel-quantized. We want to default 
13042         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
13043         content that cannot be scrolled on the scrolling thread.
13044
13045         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
13046         since normally we do want to quantize.
13047         * platform/graphics/GraphicsContext.cpp:
13048         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
13049         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
13050         * platform/graphics/GraphicsContext.h:
13051         (WebCore::GraphicsContextState::GraphicsContextState):
13052         (GraphicsContextState):
13053         (GraphicsContext):
13054
13055         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
13056         whether or not it should try to subpixel-quantize the fonts.
13057         * platform/graphics/mac/FontMac.mm:
13058         (WebCore::Font::drawGlyphs):
13059         * platform/mac/WebCoreSystemInterface.h:
13060         * platform/mac/WebCoreSystemInterface.mm:
13061
13062         Disable subpixel-quantization for overflow areas, subframes, and 
13063         content that is scrolling on the main thread.
13064         * rendering/RenderLayer.cpp:
13065         (WebCore::RenderLayer::paintLayerContents):
13066
13067 2012-11-12  Timothy Hatcher  <timothy@apple.com>
13068
13069         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
13070
13071         This allows external actions to update the docked state in the frontend.
13072
13073         https://bugs.webkit.org/show_bug.cgi?id=102023
13074
13075         Reviewed by Anders Carlsson.
13076
13077         * inspector/InspectorFrontendClientLocal.h:
13078         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
13079
13080 2012-11-12  Erik Arvidsson  <arv@chromium.org>
13081
13082         Replace DOMException TYPE_MISMATCH_ERR with TypeError
13083         https://bugs.webkit.org/show_bug.cgi?id=101604
13084
13085         Reviewed by Adam Barth.
13086
13087         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
13088
13089         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
13090         the spec mandates TypeError being thrown.
13091
13092         Updated existing tests.
13093
13094         * Modules/mediastream/MediaConstraintsImpl.cpp:
13095         * Modules/mediastream/MediaStreamTrackList.cpp:
13096         * Modules/mediastream/PeerConnection00.cpp:
13097         * Modules/mediastream/RTCDataChannel.cpp:
13098         * Modules/mediastream/RTCIceCandidate.cpp:
13099         * Modules/mediastream/RTCPeerConnection.cpp:
13100         * Modules/mediastream/RTCSessionDescription.cpp:
13101         * Modules/mediastream/SessionDescription.cpp:
13102         * bindings/js/CallbackFunction.cpp:
13103         * bindings/js/JSCustomXPathNSResolver.cpp:
13104         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13105         * bindings/js/JSHTMLSelectElementCustom.cpp:
13106         * bindings/js/JSMutationObserverCustom.cpp:
13107         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13108         * bindings/js/JSSQLTransactionCustom.cpp:
13109         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13110         * bindings/scripts/CodeGeneratorJS.pm:
13111         * bindings/scripts/CodeGeneratorObjC.pm:
13112         * bindings/scripts/CodeGeneratorV8.pm:
13113         * bindings/v8/V8Callback.h:
13114         * bindings/v8/V8Collection.cpp:
13115         * bindings/v8/custom/V8DocumentCustom.cpp:
13116         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13117         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13118         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13119         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13120         * dom/DOMCoreException.idl:
13121         * html/HTMLElement.cpp:
13122         * html/HTMLMediaElement.cpp:
13123         * html/HTMLOptionsCollection.cpp:
13124         * html/canvas/CanvasRenderingContext2D.cpp:
13125         * page/Crypto.cpp:
13126         * page/DOMSelection.cpp:
13127         * svg/properties/SVGTransformListPropertyTearOff.h:
13128
13129 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13130
13131         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13132         https://bugs.webkit.org/show_bug.cgi?id=100539
13133
13134         Reviewed by Adam Barth.
13135
13136         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13137         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13138         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13139
13140         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13141
13142         * Modules/indexeddb/IDBDatabase.cpp:
13143         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13144         * Modules/indexeddb/IDBDatabase.h:
13145         (WebCore::IDBDatabase::transaction):
13146         (IDBDatabase):
13147         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13148         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13149         * Modules/indexeddb/IDBObjectStore.h:
13150         (WebCore::IDBObjectStore::createIndex):
13151         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13152
13153 2012-11-12  Anders Carlsson  <andersca@apple.com>
13154
13155         Remove Leopard only gradient code
13156         https://bugs.webkit.org/show_bug.cgi?id=102033
13157
13158         Reviewed by Dan Bernstein.
13159
13160         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13161
13162         * platform/graphics/Gradient.h:
13163         * platform/graphics/cg/GradientCG.cpp:
13164         (WebCore::Gradient::platformDestroy):
13165         (WebCore::Gradient::platformGradient):
13166         (WebCore::Gradient::paint):
13167
13168 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13169
13170         [BlackBerry] Update BB10 form theme.
13171         https://bugs.webkit.org/show_bug.cgi?id=100760
13172
13173         Reviewed by Rob Buis.
13174
13175         RIM PR 237003
13176         Internally Reviewed by Eli Fidler.
13177         Since we nolonger use small font for form controls, adjust paddingDivisor
13178         ratio to decrease the padding value.
13179
13180         * platform/blackberry/RenderThemeBlackBerry.cpp:
13181         (WebCore):
13182
13183 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13184
13185         Fix filter dirty rect regression from r134311
13186         https://bugs.webkit.org/show_bug.cgi?id=102002
13187
13188         Reviewed by Beth Dakin.
13189
13190         When rendering with filters, the code can inflate the root-relative
13191         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13192         broke this behavior.
13193     
13194         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13195         and using it for the rest of the function.
13196
13197         * rendering/RenderLayer.cpp:
13198         (WebCore::RenderLayer::paintLayerContents):
13199
13200 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13201
13202         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13203         https://bugs.webkit.org/show_bug.cgi?id=101893
13204
13205         Reviewed by Adam Barth.
13206
13207         No tests. No change in behavior.
13208
13209         * bindings/v8/custom/V8EventCustom.cpp:
13210
13211 2012-11-12  Roger Fong  <roger_fong@apple.com>
13212
13213         Web Inspector: Fix docking behaviour on Windows.
13214         https://bugs.webkit.org/show_bug.cgi?id=101978
13215
13216         Reviewed by Brian Weinstein.
13217
13218         There are a number of problems with docking behaviour on Windows.
13219         For starters, it does not ever constrain the inspector's size properly while docked.
13220         It also does not properly set the whether or not the inspector can be docked/undocked.
13221         This patch fixes both issues.
13222
13223         * inspector/InspectorFrontendClientLocal.cpp:
13224         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13225         Switch order of calling bringToFront and setDockingUnavailable.
13226
13227 2012-11-12  Adam Barth  <abarth@webkit.org>
13228
13229         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13230         https://bugs.webkit.org/show_bug.cgi?id=101519
13231
13232         Reviewed by Ojan Vafai.
13233
13234         There should be no change in behavior.  The new API is slightly faster
13235         than the old API (and apparently works correctly internally in V8).
13236
13237         * bindings/scripts/CodeGeneratorV8.pm:
13238         (GenerateHeader):
13239         * bindings/scripts/test/V8/V8Float64Array.h:
13240         (WebCore::V8Float64Array::toNative):
13241         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13242         (WebCore::V8TestActiveDOMObject::toNative):
13243         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13244         (WebCore::V8TestCustomNamedGetter::toNative):
13245         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13246         (WebCore::V8TestEventConstructor::toNative):
13247         * bindings/scripts/test/V8/V8TestEventTarget.h:
13248         (WebCore::V8TestEventTarget::toNative):
13249         * bindings/scripts/test/V8/V8TestException.h:
13250         (WebCore::V8TestException::toNative):
13251         * bindings/scripts/test/V8/V8TestInterface.h:
13252         (WebCore::V8TestInterface::toNative):
13253         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13254         (WebCore::V8TestMediaQueryListListener::toNative):
13255         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13256         (WebCore::V8TestNamedConstructor::toNative):
13257         * bindings/scripts/test/V8/V8TestNode.h:
13258         (WebCore::V8TestNode::toNative):
13259         * bindings/scripts/test/V8/V8TestObj.h:
13260         (WebCore::V8TestObj::toNative):
13261         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13262         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13263         * bindings/v8/NPV8Object.cpp:
13264         (WebCore::v8ObjectToNPObject):
13265         (WebCore::npCreateV8ScriptObject):
13266         * bindings/v8/V8Collection.h:
13267         (WebCore::toNativeCollection):
13268         * bindings/v8/V8DOMWindowShell.cpp:
13269         (WebCore::setIsolatedWorldField):
13270         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13271         * bindings/v8/V8DOMWrapper.cpp:
13272         (WebCore::V8DOMWrapper::isWrapperOfType):
13273         * bindings/v8/V8DOMWrapper.h:
13274         (WebCore::V8DOMWrapper::setDOMWrapper):
13275         (WebCore::V8DOMWrapper::clearDOMWrapper):
13276         * bindings/v8/WrapperTypeInfo.h:
13277         (WebCore::toNative):
13278         (WebCore::toWrapperTypeInfo):
13279
13280 2012-11-12  Andreas Kling  <kling@webkit.org>
13281
13282         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13283         <http://webkit.org/b/101975>
13284
13285         Rubber-stamped by Antti Koivisto.
13286
13287         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13288         easy to confuse in variable and method names. Reconfigure our terminology to call it
13289         "presentation attribute style" instead of "attribute style".
13290
13291         * css/StyleResolver.cpp:
13292         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13293         (WebCore::StyleResolver::matchAllRules):
13294         (WebCore::StyleResolver::canShareStyleWithElement):
13295         * dom/Attr.cpp:
13296         (WebCore::Attr::style):
13297         * dom/ElementAttributeData.cpp:
13298         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13299         (WebCore::ElementAttributeData::reportMemoryUsage):
13300         * dom/ElementAttributeData.h:
13301         (WebCore::ElementAttributeData::presentationAttributeStyle):
13302         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13303         (ElementAttributeData):
13304         * dom/Node.h:
13305         (WebCore::Node::attributeStyleDirty):
13306         (WebCore::Node::setPresentationAttributeStyleDirty):
13307         (WebCore::Node::clearPresentationAttributeStyleDirty):
13308         * dom/StyledElement.cpp:
13309         (WebCore::StyledElement::attributeChanged):
13310         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13311         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13312         * dom/StyledElement.h:
13313         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13314         (StyledElement):
13315         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13316         (WebCore::StyledElement::presentationAttributeStyle):
13317         * html/HTMLBRElement.cpp:
13318         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13319         * html/HTMLBRElement.h:
13320         (HTMLBRElement):
13321         * html/HTMLBodyElement.cpp:
13322         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13323         * html/HTMLBodyElement.h:
13324         (HTMLBodyElement):
13325         * html/HTMLDivElement.cpp:
13326         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13327         * html/HTMLDivElement.h:
13328         (HTMLDivElement):
13329         * html/HTMLElement.cpp:
13330         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13331         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13332         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13333         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13334         (WebCore::HTMLElement::addHTMLLengthToStyle):
13335         * html/HTMLElement.h:
13336         (HTMLElement):
13337         * html/HTMLEmbedElement.cpp:
13338         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13339         * html/HTMLEmbedElement.h:
13340         (HTMLEmbedElement):
13341         * html/HTMLFontElement.cpp:
13342         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13343         * html/HTMLFontElement.h:
13344         (HTMLFontElement):
13345         * html/HTMLFrameSetElement.cpp:
13346         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13347         * html/HTMLFrameSetElement.h:
13348         (HTMLFrameSetElement):
13349         * html/HTMLHRElement.cpp:
13350         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13351         * html/HTMLHRElement.h:
13352         (HTMLHRElement):
13353         * html/HTMLIFrameElement.cpp:
13354         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13355         * html/HTMLIFrameElement.h:
13356         (HTMLIFrameElement):
13357         * html/HTMLImageElement.cpp:
13358         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13359         * html/HTMLImageElement.h:
13360         (HTMLImageElement):
13361         * html/HTMLInputElement.cpp:
13362         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13363         * html/HTMLInputElement.h:
13364         (HTMLInputElement):
13365         * html/HTMLLIElement.cpp:
13366         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13367         * html/HTMLLIElement.h:
13368         (HTMLLIElement):
13369         * html/HTMLMarqueeElement.cpp:
13370         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13371         * html/HTMLMarqueeElement.h:
13372         (HTMLMarqueeElement):
13373         * html/HTMLOListElement.cpp:
13374         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13375         * html/HTMLOListElement.h:
13376         (HTMLOListElement):
13377         * html/HTMLObjectElement.cpp:
13378         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13379         * html/HTMLObjectElement.h:
13380         (HTMLObjectElement):
13381         * html/HTMLParagraphElement.cpp:
13382         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13383         * html/HTMLParagraphElement.h:
13384         (HTMLParagraphElement):
13385         * html/HTMLPlugInElement.cpp:
13386         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13387         * html/HTMLPlugInElement.h:
13388         (HTMLPlugInElement):
13389         * html/HTMLPreElement.cpp:
13390         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13391         * html/HTMLPreElement.h:
13392         (HTMLPreElement):
13393         * html/HTMLTableCaptionElement.cpp:
13394         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13395         * html/HTMLTableCaptionElement.h:
13396         (HTMLTableCaptionElement):
13397         * html/HTMLTableCellElement.cpp:
13398         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13399         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13400         * html/HTMLTableCellElement.h:
13401         (HTMLTableCellElement):
13402         * html/HTMLTableColElement.cpp:
13403         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13404         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13405         * html/HTMLTableColElement.h:
13406         (HTMLTableColElement):
13407         * html/HTMLTableElement.cpp:
13408         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13409         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13410         * html/HTMLTableElement.h:
13411         (HTMLTableElement):
13412         * html/HTMLTablePartElement.cpp:
13413         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13414         * html/HTMLTablePartElement.h:
13415         (HTMLTablePartElement):
13416         * html/HTMLTableSectionElement.cpp:
13417         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13418         * html/HTMLTableSectionElement.h:
13419         (HTMLTableSectionElement):
13420         * html/HTMLTextAreaElement.cpp:
13421         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13422         * html/HTMLTextAreaElement.h:
13423         (HTMLTextAreaElement):
13424         * html/HTMLUListElement.cpp:
13425         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13426         * html/HTMLUListElement.h:
13427         (HTMLUListElement):
13428         * html/HTMLVideoElement.cpp:
13429         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13430         * html/HTMLVideoElement.h:
13431         (HTMLVideoElement):
13432         * inspector/InspectorCSSAgent.cpp:
13433         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13434         * mathml/MathMLElement.cpp:
13435         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13436         * mathml/MathMLElement.h:
13437         (MathMLElement):
13438         * svg/SVGImageElement.cpp:
13439         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13440         * svg/SVGImageElement.h:
13441         (SVGImageElement):
13442         * svg/SVGStyledElement.cpp:
13443         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13444         * svg/SVGStyledElement.h:
13445         (SVGStyledElement):
13446         * svg/SVGTextContentElement.cpp:
13447         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13448         * svg/SVGTextContentElement.h:
13449         (SVGTextContentElement):
13450
13451 2012-11-12  Adam Barth  <abarth@webkit.org>
13452
13453         [V8] Many things crash when switching to V8's new aligned pointer API
13454         https://bugs.webkit.org/show_bug.cgi?id=101994
13455
13456         Reviewed by Eric Seidel.
13457
13458         When using the aligned pointer API, we need to make sure to initialize
13459         every internal field that we later read because the new API has better
13460         error checks than the old API. This patch explicitly initializes the
13461         enteredIsolatedWorldIndex internal field to zero for main worlds,
13462         fixing the LayoutTest crashes from our previous attempt to move the
13463         aligned pointer API.
13464
13465         * bindings/v8/V8DOMWindowShell.cpp:
13466         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13467
13468 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13469
13470         Reduce the crazy number of parameters to RenderLayer painting member functions
13471         https://bugs.webkit.org/show_bug.cgi?id=101895
13472
13473         Reviewed by Beth Dakin.
13474
13475         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13476         of which were passed down directly to descendants.
13477         
13478         Gather these arguments into a LayerPaintingInfo struct.
13479
13480         * rendering/RenderLayer.cpp:
13481         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13482         to descendant paint calls.
13483         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13484         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13485         make a new LayerPaintingInfo because the root layer is shifted.
13486         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13487         (WebCore::RenderLayer::paintLayerContents):
13488         (WebCore::RenderLayer::paintList):
13489         (WebCore::RenderLayer::paintPaginatedChildLayer):
13490         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13491         struct for column painting.
13492         * rendering/RenderLayer.h:
13493         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13494         (LayerPaintingInfo):
13495         * rendering/RenderLayerBacking.cpp:
13496         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13497         to enter layer painting.
13498         * rendering/RenderReplica.cpp:
13499         (WebCore::RenderReplica::paint): Ditto.
13500
13501 2012-11-12  Brady Eidson  <beidson@apple.com>
13502
13503         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13504         https://bugs.webkit.org/show_bug.cgi?id=101872
13505
13506         Reviewed by Alexey Proskuryakov.
13507
13508         Expose shouldSniffContent to pass it along to the NetworkProcess.
13509
13510         * loader/ResourceLoader.h:
13511         (WebCore::ResourceLoader::shouldSniffContent):
13512
13513 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13514
13515         Fix memory leak in createSurfaceForBackingStore()
13516         https://bugs.webkit.org/show_bug.cgi?id=101941
13517
13518         Reviewed by Kenneth Rohde Christiansen.
13519
13520         Fix memory leak in createSurfaceForBackingStore(),
13521         the RefPtr<cairo_surface_t> should be released
13522         when returned since we pass ownership to the
13523         caller.
13524
13525         No new tests, no behavior change for layout tests.
13526
13527         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13528         (WebCore::createSurfaceForBackingStore):
13529
13530 2012-11-12  Joe Mason  <jmason@rim.com>
13531
13532         [BlackBerry] Update to new proxyInfo API
13533         https://bugs.webkit.org/show_bug.cgi?id=101945
13534
13535         Reviewed by George Staikos.
13536
13537         Internal PR: 234680
13538         Reviewed internally by: Leo Yang
13539
13540         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13541         have been replaced with a single, more efficient proxyInfo method.
13542
13543         No new tests because this is an API update with no behaviour change.
13544
13545         * platform/network/blackberry/NetworkJob.cpp:
13546         (WebCore::NetworkJob::sendRequestWithCredentials):
13547         (WebCore::NetworkJob::storeCredentials):
13548
13549 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13550
13551         Unreviewed, rolling out r126157.
13552         http://trac.webkit.org/changeset/126157
13553         https://bugs.webkit.org/show_bug.cgi?id=101954
13554
13555         This patch caused (untestable) regression of the volume
13556         property on Mac, Win, and Blackberry ports. (Requested by
13557         jernoble on #webkit).
13558
13559         * platform/graphics/MediaPlayer.cpp:
13560         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13561         (WebCore::MediaPlayer::setVolume):
13562         (WebCore::MediaPlayer::setMuted):
13563         (WebCore::MediaPlayer::setPreservesPitch):
13564         (WebCore::MediaPlayer::setSize):
13565         (WebCore::MediaPlayer::setVisible):
13566         (WebCore::MediaPlayer::setPreload):
13567
13568 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13569
13570         Specified width CSS tables should not include border and padding as part of that width.
13571         https://bugs.webkit.org/show_bug.cgi?id=77028
13572
13573         Reviewed by Julien Chaffraix.
13574
13575         CSS table width should not include border and padding even though HTML
13576         tables size as though their width includes border/padding.
13577
13578         This is applicable for all CSS tables with specified widths.
13579
13580         The change would also make our rendering of CSS tables with specified
13581         width similar to that of Opera, IE and FF.
13582
13583         Test: fast/table/css-table-width-with-border-padding.html
13584
13585         * rendering/RenderTable.cpp:
13586         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13587         Added check for all (positive) specified widths for CSS tables to
13588         consider border and padding outside of the specified width.
13589
13590 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13591
13592         Move resolving blob references to FormData.
13593         https://bugs.webkit.org/show_bug.cgi?id=101754
13594
13595         Reviewed by Simon Hausmann.
13596
13597         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13598         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13599         BlackBerry network implementation.
13600
13601         * platform/network/FormData.cpp:
13602         (WebCore::appendBlobResolved):
13603         (WebCore::FormData::resolveBlobReferences):
13604         * platform/network/FormData.h:
13605         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13606         (WebCore::ResourceRequest::initializePlatformRequest):
13607         * platform/network/cf/FormDataStreamCFNet.cpp:
13608         (WebCore::setHTTPBody):
13609         * platform/network/qt/QNetworkReplyHandler.cpp:
13610         (WebCore::FormDataIODevice::prepareFormElements):
13611
13612 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13613
13614         GraphicsSurfaceGLX does not handle transparency correctly.
13615         https://bugs.webkit.org/show_bug.cgi?id=101943
13616
13617         GraphicsSurfacGLX must consistently use RGBA texture format.
13618         glXCreateWindow must be called after creating the XWindow
13619         that serves as a temporary offscreen texture storage, in order
13620         to allow for transparency.
13621         When creating the offscreen XWindow we must make sure,
13622         that we use a framebuffer configuration that supports
13623         an alpha mask.
13624
13625         Reviewed by Noam Rosenthal.
13626
13627         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13628         (WebCore):
13629         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13630         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13631         (WebCore::GraphicsSurfacePrivate::createSurface):
13632         (GraphicsSurfacePrivate):
13633         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13634
13635 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13636
13637         Unreviewed, rolling out r134225.
13638         http://trac.webkit.org/changeset/134225
13639         https://bugs.webkit.org/show_bug.cgi?id=101948
13640
13641         Appears to have broken the EFL and GTK builds (Requested by
13642         abarth on #webkit).
13643
13644         * bindings/js/JSHTMLElementCustom.cpp:
13645         (WebCore):
13646         (WebCore::JSHTMLElement::itemValue):
13647         (WebCore::JSHTMLElement::setItemValue):
13648         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13649         (WebCore):
13650         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13651         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13652         * html/HTMLElement.idl:
13653
13654 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13655
13656         hitTestResultAtPoint does two hit-tests if called on non main frame
13657         https://bugs.webkit.org/show_bug.cgi?id=101915
13658
13659         Reviewed by Antonio Gomes.
13660
13661         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13662         done on every result that hit anything, which caused running the expensive 
13663         hit-tests multiple times in almost all cases.
13664
13665         * page/EventHandler.cpp:
13666         (WebCore::EventHandler::hitTestResultAtPoint):
13667
13668 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13669
13670         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13671         https://bugs.webkit.org/show_bug.cgi?id=101892
13672
13673         Reviewed by Adam Barth.
13674
13675         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13676
13677         No tests. No change in behavior.
13678
13679         * GNUmakefile.list.am:
13680         * Target.pri:
13681         * UseJSC.cmake:
13682         * WebCore.gypi:
13683         * WebCore.vcproj/WebCore.vcproj:
13684         * WebCore.xcodeproj/project.pbxproj:
13685         * bindings/js/JSBindingsAllInOne.cpp:
13686         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13687         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13688         * inspector/ScriptProfileNode.idl:
13689
13690 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13691
13692         [V8] Performance::memory getter needs not to be [Custom]
13693         https://bugs.webkit.org/show_bug.cgi?id=101890
13694
13695         Reviewed by Adam Barth.
13696
13697         No tests. No change in behavior.
13698
13699         * UseV8.cmake:
13700         * WebCore.gypi:
13701         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13702         * page/Performance.idl:
13703
13704 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13705
13706         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13707         https://bugs.webkit.org/show_bug.cgi?id=101888
13708
13709         Reviewed by Adam Barth.
13710
13711         We can remove [Custom] from getter. It is possible to remove [Custom]
13712         from setter, but it changes the current behavior.
13713         (I think the current implementation of the setter is wrong.
13714         I'll fix it in another patch.)
13715
13716         No tests. No change in behavior.
13717
13718         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13719         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13720         * html/HTMLOptionsCollection.idl:
13721
13722 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13723
13724         [EFL][WK2][AC] Black screen when applications use software backend.
13725         https://bugs.webkit.org/show_bug.cgi?id=101659
13726
13727         Reviewed by Kenneth Rohde Christiansen.
13728
13729         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13730
13731         No new tests. Will be covered when running existing tests without enabling openGL.
13732
13733         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13734         (WebCore::createSurfaceForImage):
13735         (WebCore):
13736         * platform/graphics/efl/CairoUtilitiesEfl.h:
13737         (WebCore):
13738
13739 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13740
13741         Unreviewed. Fix make distcheck.
13742
13743         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13744         contain idl files anymore.
13745         * GNUmakefile.list.am: Add missing header files.
13746
13747 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13748
13749         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13750         https://bugs.webkit.org/show_bug.cgi?id=101733
13751
13752         Reviewed by Jochen Eisinger.
13753
13754         This patch adds better verification to MediaConstraintsImpl.
13755
13756         Existing tests expanded to cover this change.
13757
13758         * Modules/mediastream/MediaConstraintsImpl.cpp:
13759         (WebCore::MediaConstraintsImpl::initialize):
13760
13761 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13762
13763         Unreviewed, rolling out r134223.
13764         http://trac.webkit.org/changeset/134223
13765         https://bugs.webkit.org/show_bug.cgi?id=101939
13766
13767         Breaks inspector tests (Requested by pfeldman on #webkit).
13768
13769         * inspector/front-end/DefaultTextEditor.js:
13770         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13771         (WebInspector.TextEditorMainPanel):
13772         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13773         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13774         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13775         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13776         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13777         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13778         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13779         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13780         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13781         * inspector/front-end/externs.js:
13782         * inspector/front-end/textEditor.css:
13783
13784 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13785
13786         [Qt] Support ResourceRequest's setTimeoutInterval
13787         https://bugs.webkit.org/show_bug.cgi?id=101731
13788
13789         Reviewed by Simon Hausmann.
13790
13791         Establish a timeout and return the correct error when it is triggered.
13792
13793         Tested by existing http/tests/xmlhttprequest/timeout tests.
13794
13795         * platform/network/ResourceRequestBase.cpp:
13796         * platform/network/qt/QNetworkReplyHandler.cpp:
13797         (WebCore::QNetworkReplyHandler::release):
13798         (WebCore::QNetworkReplyHandler::finish):
13799         (WebCore::QNetworkReplyHandler::timeout):
13800         (WebCore::QNetworkReplyHandler::timerEvent):
13801         (WebCore::QNetworkReplyHandler::start):
13802         * platform/network/qt/QNetworkReplyHandler.h:
13803         (QNetworkReplyHandler):
13804
13805 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13806
13807         Unreviewed, rolling out r134224.
13808         http://trac.webkit.org/changeset/134224
13809         https://bugs.webkit.org/show_bug.cgi?id=101937
13810
13811         asserting on bawts (Requested by kling on #webkit).
13812
13813         * rendering/style/RenderStyle.cpp:
13814         (WebCore::RenderStyle::diff):
13815         (WebCore::RenderStyle::setColor):
13816         (WebCore::RenderStyle::setVisitedLinkColor):
13817         * rendering/style/RenderStyle.h:
13818         * rendering/style/StyleBackgroundData.cpp:
13819         (WebCore::StyleBackgroundData::StyleBackgroundData):
13820         * rendering/style/StyleBackgroundData.h:
13821         (WebCore::StyleBackgroundData::color):
13822         (StyleBackgroundData):
13823         * rendering/style/StyleInheritedData.cpp:
13824         (WebCore::StyleInheritedData::StyleInheritedData):
13825         * rendering/style/StyleInheritedData.h:
13826         (StyleInheritedData):
13827         * rendering/style/StyleMultiColData.cpp:
13828         (WebCore::StyleMultiColData::StyleMultiColData):
13829         * rendering/style/StyleMultiColData.h:
13830         (StyleMultiColData):
13831         * rendering/style/StyleRareInheritedData.cpp:
13832         (SameSizeAsStyleRareInheritedData):
13833         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13834         (WebCore::StyleRareInheritedData::operator==):
13835         * rendering/style/StyleRareInheritedData.h:
13836         (WebCore):
13837         (StyleRareInheritedData):
13838         * rendering/style/StyleRareNonInheritedData.cpp:
13839         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13840         (WebCore::StyleRareNonInheritedData::operator==):
13841         * rendering/style/StyleRareNonInheritedData.h:
13842         (StyleRareNonInheritedData):
13843
13844 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13845
13846         [BlackBerry] Update BB10 form theme.
13847         https://bugs.webkit.org/show_bug.cgi?id=100760
13848
13849         Reviewed by Rob Buis.
13850
13851         RIM PR 236993
13852         Internally Reviewed by Jeff Rogers.
13853         Use slide and paint method on slider range and media controls.
13854
13855         * platform/blackberry/RenderThemeBlackBerry.cpp:
13856         (WebCore):
13857         (WebCore::drawThreeSliceHorizontal):
13858         (WebCore::drawThreeSliceVertical):
13859         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13860         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13861         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13862         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13863         * platform/blackberry/RenderThemeBlackBerry.h:
13864         (RenderThemeBlackBerry):
13865
13866 2012-11-12  Kent Tamura  <tkent@chromium.org>
13867
13868         Refactoring: set read-only values on layout in DateTimeEditElement
13869         https://bugs.webkit.org/show_bug.cgi?id=101916
13870
13871         Reviewed by Kentaro Hara.
13872
13873         We have always updated read-only values when we set an empty value or
13874         DateTimeFieldsState. It has wasted CPU time because such read-only
13875         values are never updated after layout() essentially. So, we set
13876         read-only values in DateTimeEditBuilder used by layout(), and remove
13877         dateForReadOnlyField arguments of setEmptyValue and
13878         setValueAsDateTimeFieldsState.
13879
13880         No new tests. This should not make behavior changes.
13881
13882         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13883         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13884         We removed dateForReadOnlyField argument because read-only values are
13885         already set in DateTimeFieldElement::layout().
13886         * html/shadow/DateTimeEditElement.cpp:
13887         (WebCore::DateTimeEditBuilder::visitField):
13888         Set a value to a read-only minute/second/millisecond field while
13889         building UI elements.
13890         Also, changed variable types for millisecond and second fields to
13891         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13892         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13893         DateTimeSecondFieldElement
13894         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13895         We removed dateForReadOnlyField argument because read-only values are
13896         already set in DateTimeFieldElement::layout().
13897         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13898         * html/shadow/DateTimeEditElement.h:
13899         (DateTimeEditElement):
13900         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13901
13902         * html/shadow/DateTimeFieldElement.cpp:
13903         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13904         We removed dateForReadOnlyField argument because read-only values are
13905         already set in DateTimeFieldElement::layout().
13906         * html/shadow/DateTimeFieldElement.h:
13907         (DateTimeFieldElement): Ditto.
13908
13909         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13910         * html/shadow/DateTimeFieldElements.h: Ditto.
13911         * html/shadow/DateTimeNumericFieldElement.cpp:
13912         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13913         It should do nothing if it is read-only because a read-only value was
13914         already set just after construction.
13915         * html/shadow/DateTimeNumericFieldElement.h:
13916         (DateTimeNumericFieldElement):
13917         Removed dateForReadOnlyField argument of setEmptyValue.
13918         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13919         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13920         * html/shadow/DateTimeSymbolicFieldElement.h:
13921         (DateTimeSymbolicFieldElement): Ditto.
13922
13923 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13924
13925         [BlackBerry] Update BB10 form theme.
13926         https://bugs.webkit.org/show_bug.cgi?id=100760
13927
13928         Reviewed by Rob Buis.
13929
13930         RIM PR 236993
13931         Internally Reviewed by Jeff Rogers.
13932         Enable GL slider.
13933
13934         * platform/blackberry/RenderThemeBlackBerry.cpp:
13935         (WebCore::drawThreeSlice):
13936         (WebCore):
13937         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13938         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13939
13940 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13941
13942         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13943         https://bugs.webkit.org/show_bug.cgi?id=101882
13944
13945         Reviewed by Adam Barth.
13946
13947         We can remove a [Custom] IDL attribute.
13948
13949         No tests. No change in behavior.
13950
13951         * bindings/js/JSHTMLElementCustom.cpp:
13952         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13953         * html/HTMLElement.idl:
13954
13955 2012-11-12  Andreas Kling  <kling@webkit.org>
13956
13957         RenderStyle: Pack Color members tighter in substructures.
13958         <http://webkit.org/b/101860>
13959
13960         Reviewed by Antti Koivisto.
13961
13962         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
13963         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
13964
13965         Memory saved per instance:
13966
13967             - StyleMultiColData:          4 bytes
13968             - StyleBackgroundData:        8 bytes
13969             - StyleInheritedData:         8 bytes
13970             - StyleRareInheritedData:    24 bytes
13971             - StyleRareNonInheritedData: 24 bytes
13972
13973         323kB progression on Membuster3.
13974
13975         * rendering/style/RenderStyle.cpp:
13976         (WebCore::RenderStyle::diff):
13977         (WebCore::RenderStyle::setColor):
13978         (WebCore::RenderStyle::setVisitedLinkColor):
13979         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
13980         (WebCore::RenderStyle::setBackgroundColor):
13981         * rendering/style/RenderStyle.h:
13982         * rendering/style/StyleBackgroundData.cpp:
13983         (WebCore::StyleBackgroundData::StyleBackgroundData):
13984         * rendering/style/StyleBackgroundData.h:
13985         (WebCore::StyleBackgroundData::color):
13986         (StyleBackgroundData):
13987         * rendering/style/StyleInheritedData.cpp:
13988         (WebCore::StyleInheritedData::StyleInheritedData):
13989         * rendering/style/StyleInheritedData.h:
13990         (StyleInheritedData):
13991         * rendering/style/StyleMultiColData.cpp:
13992         (WebCore::StyleMultiColData::StyleMultiColData):
13993         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
13994         * rendering/style/StyleMultiColData.h:
13995         (StyleMultiColData):
13996         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
13997         * rendering/style/StyleRareInheritedData.cpp:
13998         (SameSizeAsStyleRareInheritedData):
13999         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14000         (WebCore::StyleRareInheritedData::operator==):
14001         (WebCore::StyleRareInheritedData::setTextStrokeColor):
14002         (WebCore::StyleRareInheritedData::setTextFillColor):
14003         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
14004         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
14005         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
14006         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
14007         * rendering/style/StyleRareInheritedData.h:
14008         (StyleRareInheritedData):
14009         (WebCore::StyleRareInheritedData::textStrokeColor):
14010         (WebCore::StyleRareInheritedData::textFillColor):
14011         (WebCore::StyleRareInheritedData::textEmphasisColor):
14012         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
14013         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
14014         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
14015         * rendering/style/StyleRareNonInheritedData.cpp:
14016         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
14017         (WebCore::StyleRareNonInheritedData::operator==):
14018         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
14019         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
14020         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
14021         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
14022         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
14023         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
14024         * rendering/style/StyleRareNonInheritedData.h:
14025         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
14026         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
14027         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
14028         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
14029         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
14030         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
14031         (StyleRareNonInheritedData):
14032
14033 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14034
14035         Web Inspector: migrate text editor to mutation observers
14036         https://bugs.webkit.org/show_bug.cgi?id=101841
14037
14038         Reviewed by Vsevolod Vlasov.
14039
14040         Otherwise, we miss notifications on the removed lines.
14041
14042         * inspector/front-end/DefaultTextEditor.js:
14043         (WebInspector.TextEditorMainPanel):
14044         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
14045         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
14046         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
14047         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
14048         * inspector/front-end/externs.js:
14049         (WebKitMutation):
14050         (WebKitMutationObserver.prototype.observe):
14051         (WebKitMutationObserver.prototype.disconnect):
14052
14053 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
14054
14055         [Qt] Flash-plugin starts with wrong width
14056         https://bugs.webkit.org/show_bug.cgi?id=101836
14057
14058         Reviewed by Simon Hausmann.
14059
14060         Defer the setWindow call, so that the one time it is called it will have its final size.
14061
14062         * plugins/PluginPackage.cpp:
14063         (WebCore::PluginPackage::determineQuirks):
14064
14065 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14066
14067         Remove the V8 custom code for WebSockets constructor
14068         https://bugs.webkit.org/show_bug.cgi?id=100801
14069
14070         Reviewed by Kentaro Hara.
14071
14072         This patch does the following:
14073
14074         1) Modifies the V8 code generator to support overloaded constructors,
14075            the JS generator is fixed to work as before. Proper support for JS will come later.
14076
14077         2) Modifies WebSocket.h/.cpp for the new constructors.
14078
14079         Tested by running WebSockets layout tests.
14080
14081         * Modules/websockets/WebSocket.cpp:
14082         (WebCore::WebSocket::create):
14083         (WebCore):
14084         * Modules/websockets/WebSocket.h:
14085         (WebSocket):
14086         * Modules/websockets/WebSocket.idl:
14087         * bindings/scripts/CodeGeneratorJS.pm:
14088         (GenerateConstructorDefinition):
14089         * bindings/scripts/CodeGeneratorV8.pm:
14090         (GenerateHeader):
14091         (GenerateOverloadedConstructorCallback):
14092         (GenerateSingleConstructorCallback):
14093         (GenerateConstructorCallback):
14094         (GenerateImplementation):
14095         * bindings/scripts/IDLParser.pm:
14096         (copyAttributes):
14097         (parseExtendedAttributeList):
14098         (parseExtendedAttributes):
14099         (applyExtendedAttributeList):
14100         * bindings/scripts/IDLStructure.pm:
14101         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14102         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14103         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14104         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14105         (WebDOMTestOverloadedConstructors::operator=):
14106         (WebDOMTestOverloadedConstructors::impl):
14107         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14108         (toWebCore):
14109         (toWebKit):
14110         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14111         (WebCore):
14112         (WebDOMTestOverloadedConstructors):
14113         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14114         (WebKit):
14115         (WebKit::kit):
14116         (WebKit::core):
14117         (WebKit::wrapTestOverloadedConstructors):
14118         (webkit_dom_test_overloaded_constructors_finalize):
14119         (webkit_dom_test_overloaded_constructors_set_property):
14120         (webkit_dom_test_overloaded_constructors_get_property):
14121         (webkit_dom_test_overloaded_constructors_constructed):
14122         (webkit_dom_test_overloaded_constructors_class_init):
14123         (webkit_dom_test_overloaded_constructors_init):
14124         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14125         (_WebKitDOMTestOverloadedConstructors):
14126         (_WebKitDOMTestOverloadedConstructorsClass):
14127         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14128         (WebKit):
14129         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14130         (WebCore):
14131         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14132         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14133         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14134         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14135         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14136         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14137         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14138         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14139         (WebCore::JSTestOverloadedConstructors::finishCreation):
14140         (WebCore::JSTestOverloadedConstructors::createPrototype):
14141         (WebCore::JSTestOverloadedConstructors::destroy):
14142         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14143         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14144         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14145         (WebCore::jsTestOverloadedConstructorsConstructor):
14146         (WebCore::JSTestOverloadedConstructors::getConstructor):
14147         (WebCore::isObservable):
14148         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14149         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14150         (WebCore::toJS):
14151         (WebCore::toTestOverloadedConstructors):
14152         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14153         (WebCore):
14154         (JSTestOverloadedConstructors):
14155         (WebCore::JSTestOverloadedConstructors::create):
14156         (WebCore::JSTestOverloadedConstructors::createStructure):
14157         (WebCore::JSTestOverloadedConstructors::impl):
14158         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14159         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14160         (JSTestOverloadedConstructorsOwner):
14161         (WebCore::wrapperOwner):
14162         (WebCore::wrapperContext):
14163         (JSTestOverloadedConstructorsPrototype):
14164         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14165         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14166         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14167         (JSTestOverloadedConstructorsConstructor):
14168         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14169         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14170         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14171         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14172         (-[DOMTestOverloadedConstructors dealloc]):
14173         (-[DOMTestOverloadedConstructors finalize]):
14174         (core):
14175         (kit):
14176         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14177         (WebCore):
14178         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14179         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14180         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14181         (WebCore):
14182         (TestOverloadedConstructorsV8Internal):
14183         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14184         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14185         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14186         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14187         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14188         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14189         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14190         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14191         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14192         (WebCore::V8TestOverloadedConstructors::HasInstance):
14193         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14194         (WebCore::V8TestOverloadedConstructors::derefObject):
14195         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14196         (WebCore):
14197         (V8TestOverloadedConstructors):
14198         (WebCore::V8TestOverloadedConstructors::toNative):
14199         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14200         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14201         (WebCore::V8TestOverloadedConstructors::wrap):
14202         (WebCore::toV8):
14203         * bindings/v8/custom/V8WebSocketCustom.cpp:
14204
14205 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14206
14207         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14208         https://bugs.webkit.org/show_bug.cgi?id=101891
14209
14210         Reviewed by Hajime Morita.
14211
14212         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14213         since it will have more features than the original RuleFeatureSet has.
14214
14215         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14216
14217         No new tests, no change in behavior.
14218
14219         * CMakeLists.txt:
14220         * GNUmakefile.list.am:
14221         * Target.pri:
14222         * WebCore.gypi:
14223         * WebCore.vcproj/WebCore.vcproj:
14224         * WebCore.xcodeproj/project.pbxproj:
14225         * dom/ElementShadow.h:
14226         (ElementShadow):
14227         (WebCore::ElementShadow::selectRuleFeatureSet):
14228         (WebCore):
14229         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14230         (WebCore):
14231         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14232         (WebCore::SelectRuleFeatureSet::add):
14233         (WebCore::SelectRuleFeatureSet::clear):
14234         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14235         * html/shadow/SelectRuleFeatureSet.h: Added.
14236         (WebCore):
14237         (SelectRuleFeatureSet):
14238         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14239         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14240         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14241         * testing/Internals.cpp:
14242         (WebCore::Internals::hasSelectorForIdInShadow):
14243         (WebCore::Internals::hasSelectorForClassInShadow):
14244         (WebCore::Internals::hasSelectorForAttributeInShadow):
14245
14246 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14247
14248         Build fix for Chromium Android (caused by r134216)
14249
14250         Unreviewed.
14251
14252         No new tests.
14253
14254         * platform/text/PlatformLocale.cpp:
14255         (WebCore::Locale::formatDateTime):
14256
14257 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14258
14259         Add support for week/month to Locale::formatDateTime()
14260         https://bugs.webkit.org/show_bug.cgi?id=101878
14261
14262         Reviewed by Kent Tamura.
14263
14264         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14265
14266         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14267
14268         * platform/text/PlatformLocale.cpp:
14269         (WebCore::DateTimeStringBuilder::visitField):
14270         (WebCore::Locale::formatDateTime): Support week and month types.
14271
14272 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14273
14274         [Qt] Can not load MHTML documents
14275         https://bugs.webkit.org/show_bug.cgi?id=101765
14276
14277         Reviewed by Simon Hausmann.
14278
14279         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14280
14281         Tested by existing mhtml/ tests.
14282
14283         * platform/qt/MIMETypeRegistryQt.cpp:
14284         (WebCore):
14285
14286 2012-11-12  Andreas Kling  <akling@apple.com>
14287
14288         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14289         <http://webkit.org/b/101850>
14290
14291         Reviewed by Antti Koivisto.
14292
14293         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14294         222kB progression on Membuster3.
14295
14296         * platform/network/ResourceRequestBase.cpp:
14297         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14298
14299 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14300
14301         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14302         https://bugs.webkit.org/show_bug.cgi?id=101751
14303
14304         Reviewed by Adam Barth.
14305
14306         This patch queues the events until the JS interpreter is in an idle state.
14307
14308         Existing tests cover this patch.
14309
14310         * Modules/mediastream/RTCDataChannel.cpp:
14311         (WebCore::RTCDataChannel::RTCDataChannel):
14312         (WebCore::RTCDataChannel::readyStateChanged):
14313         (WebCore::RTCDataChannel::dataArrived):
14314         (WebCore::RTCDataChannel::error):
14315         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14316         (WebCore):
14317         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14318         * Modules/mediastream/RTCDataChannel.h:
14319         (RTCDataChannel):
14320         * platform/chromium/support/WebRTCDataChannel.cpp:
14321         (WebKit::WebRTCDataChannel::setBufferedAmount):
14322         (WebKit::WebRTCDataChannel::readyStateChanged):
14323         (WebKit::WebRTCDataChannel::dataArrived):
14324         (WebKit::WebRTCDataChannel::error):
14325
14326 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14327
14328         Remove HTMLInputElement dependency from PickerIndicatorElement
14329         https://bugs.webkit.org/show_bug.cgi?id=101913
14330
14331         Reviewed by Kent Tamura.
14332
14333         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14334         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14335         and its owner without having to add functions to HTMLInputElement.
14336
14337         No new tests. This is just a refactor.
14338
14339         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14340         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14341         (WebCore):
14342         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14343         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14344         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14345         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14346         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14347         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14348         (WebCore):
14349         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14350         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14351         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14352         (WebCore::PickerIndicatorElement::create):
14353         (WebCore::PickerIndicatorElement::defaultEventHandler):
14354         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14355         (WebCore::PickerIndicatorElement::didChooseValue):
14356         (WebCore::PickerIndicatorElement::openPopup):
14357         * html/shadow/PickerIndicatorElement.h:
14358         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14359         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14360         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14361         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14362
14363 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14364
14365         [CSSRegions]Add support for text-shadow in region styling
14366         https://bugs.webkit.org/show_bug.cgi?id=94472
14367
14368         Reviewed by David Hyatt.
14369
14370         Original patch by Andrei Onea.
14371         Add support for text-shadow in region styling (@-webkit-region rule).
14372         In addition to the previously supported region styling properties (background-color and color),
14373         text-shadow requires the computation of an element style in region at layout time.
14374
14375         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14376         can be used to retrieve the object style in region (if already cached) or to compute it
14377         on the spot. When computing the object style in region, we need to compute the style in region
14378         also for the object ancestor, up to the content nodes.
14379
14380         This patch also refactors the way styles in region are computed and stored, because
14381         we can compute the style in region not only at paint time, but also at layout time.
14382
14383         Test: fast/regions/region-style-text-shadow.html
14384
14385         * css/StyleResolver.cpp:
14386         (WebCore::StyleResolver::isValidRegionStyleProperty):
14387         Allow text-shadow to be used in region styling.
14388         * rendering/InlineBox.cpp:
14389         (WebCore::InlineBox::styleInRegion):
14390         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14391         Compute the style in region if not computed yet.
14392         (WebCore::InlineBox::regionDuringLayout):
14393         Retrieve the region in which an InlineBox is being flowed.
14394         * rendering/InlineBox.h:
14395         * rendering/InlineFlowBox.cpp: Take region styling into account.
14396         (WebCore::InlineFlowBox::addToLine):
14397         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14398         * rendering/RenderRegion.cpp:
14399         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14400         (WebCore::canCacheObjectStyleInRegion):
14401         Test if we can cache the computed style in region.
14402         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14403         (WebCore::RenderRegion::computeStyleInRegion):
14404         (WebCore::RenderRegion::setChildrenStyleInRegion):
14405         (WebCore::setObjectHasBoxDecorationsFlag):
14406         (WebCore::RenderRegion::setObjectStyleInRegion):
14407         (WebCore::RenderRegion::clearObjectStyleInRegion):
14408         (WebCore::RenderRegion::ensureRegionStyleForObject):
14409         * rendering/RenderRegion.h:
14410
14411 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14412
14413         Unreviewed, rolling out r134154.
14414         http://trac.webkit.org/changeset/134154
14415         https://bugs.webkit.org/show_bug.cgi?id=101919
14416
14417         Causes plenty of crashes on GTK and Apple Win builders
14418         (Requested by zdobersek on #webkit).
14419
14420         * css/mediaControls.css:
14421         * css/mediaControlsQuickTime.css:
14422         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14423         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14424         * html/shadow/MediaControlElements.cpp:
14425         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14426         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14427         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14428         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14429         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14430         * html/shadow/MediaControlElements.h:
14431         (MediaControlElement):
14432         (MediaControlToggleClosedCaptionsButtonElement):
14433         * html/shadow/MediaControlRootElement.cpp:
14434         (WebCore::MediaControlRootElement::MediaControlRootElement):
14435         (WebCore::MediaControlRootElement::create):
14436         (WebCore::MediaControlRootElement::setMediaController):
14437         (WebCore::MediaControlRootElement::hide):
14438         (WebCore::MediaControlRootElement::makeTransparent):
14439         (WebCore::MediaControlRootElement::reset):
14440         (WebCore::MediaControlRootElement::reportedError):
14441         * html/shadow/MediaControlRootElement.h:
14442         (WebCore):
14443         (MediaControlRootElement):
14444         * html/shadow/MediaControlRootElementChromium.cpp:
14445         (WebCore::MediaControlRootElementChromium::initializeControls):
14446         * html/shadow/MediaControls.h:
14447         (MediaControls):
14448         * platform/Language.cpp:
14449         (WebCore):
14450         * platform/Language.h:
14451         (WebCore):
14452         * rendering/RenderMediaControls.cpp:
14453         (WebCore::RenderMediaControls::paintMediaControlsPart):
14454         * rendering/RenderMediaControlsChromium.cpp:
14455         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14456
14457 2012-11-12  Mike West  <mkwst@chromium.org>
14458
14459         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14460         https://bugs.webkit.org/show_bug.cgi?id=101908
14461
14462         Reviewed by Pavel Feldman.
14463
14464         r134166 should have included a 'var' declaration in its 'for (x in y)'
14465         loop. This patch adds the missing 'var' in order to prevent leakage into
14466         the global context.
14467
14468         * inspector/front-end/ConsoleMessage.js:
14469         (WebInspector.ConsoleMessageImpl.prototype.append):
14470         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14471
14472 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14473
14474         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14475         https://bugs.webkit.org/show_bug.cgi?id=101775
14476
14477         Introducing HAVE(QTTESTSUPPORT) to allow building
14478         MiniBrowser without QtTestSupport.
14479         This is necessary when using a production build.
14480
14481         Reviewed by Tor Arne Vestbø.
14482
14483         * Target.pri:
14484         * platform/qt/QtTestSupport.h:
14485
14486 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14487
14488         Web Inspector: wasShown is called twice when show() is called from within wasShown
14489         https://bugs.webkit.org/show_bug.cgi?id=101858
14490
14491         Reviewed by Vsevolod Vlasov.
14492
14493         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14494         We now mute one of them.
14495
14496         * inspector/front-end/View.js:
14497         (WebInspector.View):
14498         (WebInspector.View.prototype._inNotification):
14499         (WebInspector.View.prototype._parentIsShowing):
14500         (WebInspector.View.prototype._callOnVisibleChildren):
14501         (WebInspector.View.prototype._processWasShown):
14502         (WebInspector.View.prototype._processWillHide):
14503         (WebInspector.View.prototype._processOnResize):
14504         (WebInspector.View.prototype._notify):
14505         (WebInspector.View.prototype.show):
14506
14507 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14508
14509         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14510         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14511
14512         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14513
14514         * editing/FrameSelection.cpp:
14515         (WebCore::FrameSelection::setSelection):
14516         (WebCore::FrameSelection::recomputeCaretRect):
14517         (WebCore::FrameSelection::updateAppearance):
14518         (WebCore::FrameSelection::setCaretVisibility):
14519
14520 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14521
14522         Don't update style when attaching in HTMLMeterElement
14523         https://bugs.webkit.org/show_bug.cgi?id=101714
14524
14525         Reviewed by Hajime Morita.
14526
14527         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14528         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14529
14530         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14531
14532         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14533
14534         * html/HTMLMeterElement.cpp:
14535         * html/HTMLMeterElement.h:
14536         (HTMLMeterElement): Removed attach(). We don't need it.
14537
14538 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14539
14540         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14541         https://bugs.webkit.org/show_bug.cgi?id=101547
14542
14543         Reviewed by Simon Fraser.
14544
14545         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14546         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14547         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14548         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14549
14550         Covered by existing tests.
14551
14552         * editing/FrameSelection.cpp:
14553         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14554         (WebCore::FrameSelection::prepareForDestruction): Added.
14555         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14556         Also, don't update style before updating selection unless text caret is disabled since we always
14557         update the layout (including style) when text caret is enabled.
14558         * editing/FrameSelection.h:
14559         (FrameSelection):
14560         * loader/FrameLoader.cpp:
14561         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14562
14563 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14564
14565         [CSS3] Parsing the property, text-align-last.
14566         https://bugs.webkit.org/show_bug.cgi?id=99439
14567
14568         Reviewed by Julien Chaffraix.
14569
14570         This patch implements the parsing side of the "text-align-last" property specified
14571         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14572         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14573
14574         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14575                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14576
14577         * css/CSSComputedStyleDeclaration.cpp:
14578         (WebCore):
14579         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14580         * css/CSSParser.cpp:
14581         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14582         * css/CSSPrimitiveValueMappings.h:
14583         (WebCore):
14584         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14585         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14586         * css/CSSProperty.cpp:
14587         (WebCore::CSSProperty::isInheritedProperty):
14588         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14589         * css/StyleBuilder.cpp:
14590         (WebCore::StyleBuilder::StyleBuilder):
14591         * css/StylePropertySet.cpp:
14592         (WebCore):
14593         * css/StyleResolver.cpp:
14594         (WebCore::StyleResolver::applyProperty):
14595         * rendering/style/RenderStyle.h:
14596         * rendering/style/RenderStyleConstants.h:
14597         * rendering/style/StyleRareInheritedData.cpp:
14598         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14599         (WebCore::StyleRareInheritedData::operator==):
14600         * rendering/style/StyleRareInheritedData.h:
14601         (StyleRareInheritedData): Add m_textAlignLast.
14602
14603 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14604
14605         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14606         https://bugs.webkit.org/show_bug.cgi?id=101881
14607
14608         Reviewed by Kent Tamura.
14609
14610         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14611         setPseudo()/pseudo() instead.
14612
14613         No new tests, simple refacotring.
14614
14615         * html/HTMLKeygenElement.cpp:
14616         (WebCore::KeygenSelectElement::KeygenSelectElement):
14617         (KeygenSelectElement):
14618
14619 2012-11-11  Adam Barth  <abarth@webkit.org>
14620
14621         Many DOMWindowProperties would benefit from being ScriptWrappable
14622         https://bugs.webkit.org/show_bug.cgi?id=101887
14623
14624         Reviewed by Kentaro Hara.
14625
14626         These object are only ever created at the behest of script, which means
14627         making them ScriptWrappable is a win.
14628
14629         * page/BarInfo.h:
14630         * page/Console.h:
14631         * page/Crypto.h:
14632         * page/History.h:
14633         * page/Location.h:
14634         * page/Navigator.h:
14635         * page/Performance.h:
14636
14637 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14638
14639         [V8] HTMLDocument::all() needs not to be custom
14640         https://bugs.webkit.org/show_bug.cgi?id=101875
14641
14642         Reviewed by Adam Barth.
14643
14644         We can easily remove the custom getter from V8 because the
14645         custom setter sets .all by ForceSet(). On the other hand,
14646         it is non-trivial to remove the custom getter from JSC
14647         because the custom setter sets .all by putDirect()
14648         and the custom getter wants to get it by getDirect().
14649
14650         No tests. No change in behavior.
14651
14652         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14653         * html/HTMLDocument.idl:
14654
14655 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14656
14657         [V8] V8Console::memoryAttrGetter() needs not to be custom
14658         https://bugs.webkit.org/show_bug.cgi?id=101873
14659
14660         Reviewed by Adam Barth.
14661
14662         No tests. No change in behavior.
14663
14664         * bindings/v8/custom/V8ConsoleCustom.cpp:
14665         (WebCore):
14666         * page/Console.idl:
14667
14668 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14669
14670         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14671         https://bugs.webkit.org/show_bug.cgi?id=101180
14672
14673         Reviewed by Dimitri Glazkov.
14674
14675         This is a preparation patch for Bug 100451.
14676
14677         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14678         When an element attribute is changed, we might have to invalidate content distribution,
14679         however it's high cost operation. So we would like to check RuleFeatureSet used in
14680         select attributes to determine we really need to invalidate distribution.
14681
14682         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14683         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14684         For the performance reason, we have a flag to check whether we need to collect features again.
14685
14686         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14687
14688         * WebCore.exp.in:
14689         * dom/ElementShadow.cpp:
14690         (WebCore::ElementShadow::ElementShadow):
14691         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14692         nodes (and their ShadowDOM).
14693         (WebCore):
14694         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14695         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14696         ShadowDOM. We need to collect id, class, and attribute names.
14697         * dom/ElementShadow.h:
14698         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14699         (ElementShadow):
14700         (WebCore::ElementShadow::hasSelectorForId):
14701         (WebCore):
14702         (WebCore::ElementShadow::hasSelectorForClass):
14703         (WebCore::ElementShadow::hasSelectorForAttribute):
14704         * html/shadow/HTMLContentElement.cpp:
14705         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14706         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14707         (WebCore::HTMLContentElement::removedFrom): ditto.
14708         * html/shadow/HTMLContentElement.h:
14709         (WebCore::toHTMLContentElement):
14710         (WebCore):
14711         * testing/Internals.cpp:
14712         (WebCore::Internals::hasSelectorForIdInShadow):
14713         (WebCore):
14714         (WebCore::Internals::hasSelectorForClassInShadow):
14715         (WebCore::Internals::hasSelectorForAttributeInShadow):
14716         * testing/Internals.h:
14717         (Internals):
14718         * testing/Internals.idl:
14719
14720 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14721
14722         Unreviewed, rolling out r134144.
14723         http://trac.webkit.org/changeset/134144
14724         https://bugs.webkit.org/show_bug.cgi?id=101876
14725
14726         seems to break win 7 chromium browser test (Requested by
14727         hayato on #webkit).
14728
14729         * WebCore.exp.in:
14730         * page/EventHandler.cpp:
14731         (WebCore):
14732         (WebCore::EventHandler::handleMouseMoveEvent):
14733         * page/EventHandler.h:
14734         (EventHandler):
14735         * testing/Internals.cpp:
14736         * testing/Internals.h:
14737         * testing/Internals.idl:
14738
14739 2012-11-11  Kent Tamura  <tkent@chromium.org>
14740
14741         Internals: MockPagePopup should not update DOM structure during detach()
14742         https://bugs.webkit.org/show_bug.cgi?id=101710
14743
14744         Reviewed by Hajime Morita.
14745
14746         PickerIndicatorElement::detach calls
14747         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14748         which remove the mock iframe from the tree. But updating the tree during
14749         detach() is dangerous.
14750
14751         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14752         requests to call 'close' asynchronously, and 'close' removes the mock
14753         iframe. We need to change MockPagePopup so that it is ref-couted and has
14754         a timer.
14755
14756         No new tests. This is a change for the test harness.
14757
14758         * testing/MockPagePopupDriver.cpp:
14759         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14760         add m_closeTimer.
14761         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14762         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14763         (WebCore::MockPagePopup::closeLater):
14764         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14765           closePagePopup.
14766         - Notify didClosePopup here because the client expects didClosePopup is
14767           called synchronously.
14768         - Invoke the timer to call 'close'
14769         (WebCore::MockPagePopup::close):
14770         Just remove one reference. This means calling the desructor.
14771         (WebCore::MockPagePopup::~MockPagePopup):
14772         Move didClosePopup call to caloseLater.
14773         (WebCore::MockPagePopupDriver::closePagePopup):
14774         Request to close PagePopup.
14775         Clear PagePopupClient in m_pagePopupController because this object is
14776         necessary until MockPagePopup is closed, but it should not have a
14777         reference to the PagePopupClient.
14778         * testing/MockPagePopupDriver.h:
14779         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14780
14781 2012-11-11  Adam Barth  <abarth@webkit.org>
14782
14783         axObjectCache code is more complicated than necessary
14784         https://bugs.webkit.org/show_bug.cgi?id=101820
14785
14786         Reviewed by Darin Adler.
14787
14788         This code should use OwnPtr rather than manually calling new/delete.
14789         Also, instead of using a "double check" pattern, we can just access the
14790         private fields on the top document directly.
14791
14792         * dom/Document.cpp:
14793         (WebCore::Document::Document):
14794         (WebCore::Document::clearAXObjectCache):
14795         (WebCore::Document::axObjectCacheExists):
14796         (WebCore):
14797         (WebCore::Document::axObjectCache):
14798         * dom/Document.h:
14799         (Document):
14800
14801 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14802
14803         Save one call to containerForRepaint() when updating layer positions
14804         https://bugs.webkit.org/show_bug.cgi?id=101856
14805
14806         Reviewed by Dan Bernstein.
14807
14808          RenderLayer::updateLayerPositions() has already computed the repaint container,
14809          but calls computeRepaintRects() which computes it again. Computing the repaint
14810          container involves a walk back up the layer tree, so calling it during a tree
14811          traversal is costly.
14812          
14813          Fix by passing the repaint container down into computeRepaintRects().
14814
14815         * rendering/RenderLayer.cpp:
14816         (WebCore::RenderLayer::updateLayerPositions):
14817         (WebCore::RenderLayer::computeRepaintRects):
14818         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14819         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14820         (WebCore::RenderLayer::setHasVisibleContent):
14821         * rendering/RenderLayer.h:
14822         (RenderLayer):
14823
14824 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14825
14826         WTFString::utf8() should have a mode of conversion to use replacement character
14827         https://bugs.webkit.org/show_bug.cgi?id=101678
14828
14829         Reviewed by Alexey Proskuryakov.
14830
14831         Follow the change on String::utf8()
14832
14833         No new tests. No changes in behavior.
14834
14835         * Modules/websockets/WebSocket.cpp:
14836         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14837         * Modules/websockets/WebSocketChannel.cpp:
14838         (WebCore::WebSocketChannel::send): Ditto.
14839         * html/MediaFragmentURIParser.cpp:
14840         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14841         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14842         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14843         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14844         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14845         * platform/network/blackberry/rss/RSSGenerator.cpp:
14846         (WebCore::RSSGenerator::generateHtml): Ditto.
14847
14848 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14849
14850         Coalesce main thread scroll position updates
14851         https://bugs.webkit.org/show_bug.cgi?id=101855
14852
14853         Reviewed by Anders Carlsson.
14854
14855         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14856         from ScrollingTree would pile up on the main thread, and we'd handle several per
14857         runloop cycle when scrolling fast. This causes extra work especially on pages
14858         with position:fixed elements which must update RenderLayers on scrolling.
14859         
14860         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14861         scrolling updates to one per runloop.
14862
14863         * page/scrolling/ScrollingCoordinator.cpp:
14864         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14865         for the scheduled scroll position update.
14866         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14867         the timer is active and the parameters match, just update the target scroll
14868         position and return. If the params don't match, dispatch the scheduled update,
14869         and then the new one. Otherwise, prime the timer.
14870         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14871         the existing updateMainFrameScrollPosition() with the saved values.
14872         * page/scrolling/ScrollingCoordinator.h:
14873         * page/scrolling/ScrollingTree.cpp:
14874         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14875         rather than updateMainFrameScrollPosition().
14876         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14877         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14878         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14879         sets the position data, without touching CA layers).
14880
14881 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14882
14883         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14884         https://bugs.webkit.org/show_bug.cgi?id=101514
14885
14886         Reviewed by Tim Horton.
14887
14888         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14889         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14890         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14891         set the layer position (rather than just doing a 'sync').
14892
14893         * page/scrolling/ScrollingCoordinator.cpp:
14894         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14895         * page/scrolling/ScrollingCoordinator.h:
14896         * page/scrolling/ScrollingTree.cpp:
14897         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14898         * page/scrolling/ScrollingTree.h:
14899         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14900         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14901         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14902         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14903
14904 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14905
14906         Unreviewed, rolling out r134069.
14907         http://trac.webkit.org/changeset/134069
14908         https://bugs.webkit.org/show_bug.cgi?id=101852
14909
14910         "It is a wrong way to fix the problem. See discussions in bug
14911         96614" (Requested by 1JTAAPQFJ on #webkit).
14912
14913         * bindings/js/JSDictionary.cpp:
14914         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14915
14916 2012-11-10  Mike West  <mkwst@chromium.org>
14917
14918         Web Inspector: Multiple '%c' formatting options should all have effect.
14919         https://bugs.webkit.org/show_bug.cgi?id=101495
14920
14921         Reviewed by Pavel Feldman.
14922
14923         This patch supports multiple '%c' formatting blocks in console messages.
14924         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14925         do exactly what you expect: "blue!" will be blue, and "green!" will be
14926         green.
14927
14928         The implementation moves the styles off the message's parent 'span', and
14929         onto new 'span' elements that wrap the various textual bits of the
14930         message.
14931
14932         * inspector/front-end/ConsoleMessage.js:
14933         (WebInspector.ConsoleMessageImpl.prototype.):
14934         (WebInspector.ConsoleMessageImpl.prototype.append):
14935         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14936
14937 2012-11-10  Mike West  <mkwst@chromium.org>
14938
14939         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14940         https://bugs.webkit.org/show_bug.cgi?id=101851
14941
14942         Reviewed by Dan Bernstein.
14943
14944         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14945         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14946         around, it looks like this needs to be modified to include
14947         'ApplicationServices/ApplicationServices.h'.
14948
14949         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14950             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14951         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14952             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14953
14954 2012-11-10  Andreas Kling  <kling@webkit.org>
14955
14956         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14957         <http://webkit.org/b/101849>
14958
14959         Reviewed by Anders Carlsson.
14960
14961         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
14962         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
14963
14964         120 kB progression on Membuster3.
14965
14966         * dom/Element.cpp:
14967         (WebCore::Element::setAttributeInternal):
14968         (WebCore::Element::addAttributeInternal):
14969
14970 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14971
14972         Some minor optimizations in RenderLayer
14973         https://bugs.webkit.org/show_bug.cgi?id=101847
14974
14975         Reviewed by Anders Carlsson.
14976
14977         Some minor performance improvements in RenderLayer code.
14978
14979         * rendering/RenderLayer.cpp:
14980         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
14981         so prefix it with an isInline() check which tests a bit on RenderObject.
14982         (WebCore::RenderLayer::localBoundingBox): Ditto.
14983         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
14984         into a local variable.
14985
14986 2012-11-10  Anders Carlsson  <andersca@apple.com>
14987
14988         Document::m_fullScreenElementStack should be a Vector
14989         https://bugs.webkit.org/show_bug.cgi?id=101844
14990
14991         Reviewed by Andreas Kling.
14992
14993         m_fullScreenElementStack is currently a Deque where elements are being prepended
14994         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
14995
14996         * dom/Document.cpp:
14997         (WebCore::Document::requestFullScreenForElement):
14998         (WebCore::Document::webkitCancelFullScreen):
14999         (WebCore::Document::popFullscreenElementStack):
15000         (WebCore::Document::pushFullscreenElementStack):
15001         * dom/Document.h:
15002         (WebCore::Document::webkitFullscreenElement):
15003         (Document):
15004
15005 2012-11-10  Adam Barth  <abarth@webkit.org>
15006
15007         [V8] Clean up header includes and ifdefs in V8GCController
15008         https://bugs.webkit.org/show_bug.cgi?id=101691
15009
15010         Reviewed by Kentaro Hara.
15011
15012         This file doesn't need to include all these headers anymore.
15013
15014         * bindings/v8/V8GCController.cpp:
15015         (WebCore::workingSetEstimateMBMutex):
15016         (WebCore::V8GCController::majorGCEpilogue):
15017         (WebCore::V8GCController::checkMemoryUsage):
15018
15019 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
15020
15021         [Mac] Guard WebCore PageVisibility Symbol Export
15022         https://bugs.webkit.org/show_bug.cgi?id=101817
15023
15024         Reviewed by Andreas Kling.
15025
15026         Guard the export with the same ENABLE guards around its definition
15027         and implementation.
15028
15029         * WebCore.exp.in:
15030
15031 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
15032
15033         [css] text-decoration:none no longer valid
15034         https://bugs.webkit.org/show_bug.cgi?id=101529
15035
15036         Reviewed by Ojan Vafai.
15037
15038         This patch fixes an issue where the 'none' value was parsed as explicitly
15039         'initial' value. However true in a sense that the initial value for the
15040         'text-decoration' property is 'none', the value itself could not be parsed as
15041         'initial'.
15042
15043         The getComputedStyle layout tests for 'text-decoration' and
15044         '-webkit-text-decoration-line' CSS properties are updated with the correct
15045         results.
15046
15047         * css/CSSParser.cpp:
15048         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
15049         gets its own identifier value instead of explicit initial.
15050
15051 2012-11-09  Dean Jackson  <dino@apple.com>
15052
15053         Support list of tracks in caption media controls
15054         https://bugs.webkit.org/show_bug.cgi?id=101669
15055
15056         Reviewed by Eric Carlson.
15057
15058         Attempt three of commit. The first two times caused build failures on Chromium.
15059
15060         Add some new elements to the media control shadow DOM that display the list of available
15061         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15062         where it is given a very basic design. At the moment only the list of available tracks
15063         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15064
15065         No new tests - this doesn't expose any testable surface.
15066
15067         * css/mediaControls.css: Added default rules that hide the new elements.
15068         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15069         * html/shadow/MediaControlElements.cpp:
15070         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15071         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15072         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15073         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15074         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15075         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15076         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15077         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15078         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15079         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15080         * html/shadow/MediaControlElements.h:
15081         (MediaControlElement):
15082         (MediaControlToggleClosedCaptionsButtonElement):
15083         (MediaControlClosedCaptionsContainerElement):
15084         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15085         * html/shadow/MediaControlRootElement.cpp:
15086         (WebCore::MediaControlRootElement::MediaControlRootElement):
15087         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15088         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15089         (WebCore::MediaControlRootElement::hide):
15090         (WebCore::MediaControlRootElement::makeTransparent):
15091         (WebCore::MediaControlRootElement::reset):
15092         (WebCore::MediaControlRootElement::reportedError):
15093         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15094         (WebCore):
15095         * html/shadow/MediaControlRootElement.h:
15096         (WebCore):
15097         (MediaControlRootElement):
15098         * html/shadow/MediaControlRootElementChromium.cpp:
15099         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15100         * html/shadow/MediaControls.h:
15101         (MediaControls):
15102         * platform/Language.cpp:
15103         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15104         * platform/Language.h:
15105         (WebCore):
15106         * rendering/RenderMediaControls.cpp:
15107         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15108         * rendering/RenderMediaControlsChromium.cpp:
15109         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15110
15111 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15112
15113         Unreviewed, rolling out r134152.
15114         http://trac.webkit.org/changeset/134152
15115         https://bugs.webkit.org/show_bug.cgi?id=101831
15116
15117         broke chromium again (Requested by dino_ on #webkit).
15118
15119         * css/mediaControls.css:
15120         * css/mediaControlsQuickTime.css:
15121         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15122         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15123         * html/shadow/MediaControlElements.cpp:
15124         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15125         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15126         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15127         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15128         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15129         * html/shadow/MediaControlElements.h:
15130         (MediaControlElement):
15131         (MediaControlToggleClosedCaptionsButtonElement):
15132         * html/shadow/MediaControlRootElement.cpp:
15133         (WebCore::MediaControlRootElement::MediaControlRootElement):
15134         (WebCore::MediaControlRootElement::create):
15135         (WebCore::MediaControlRootElement::setMediaController):
15136         (WebCore::MediaControlRootElement::hide):
15137         (WebCore::MediaControlRootElement::makeTransparent):
15138         (WebCore::MediaControlRootElement::reset):
15139         (WebCore::MediaControlRootElement::reportedError):
15140         * html/shadow/MediaControlRootElement.h:
15141         (WebCore):
15142         (MediaControlRootElement):
15143         * html/shadow/MediaControlRootElementChromium.cpp:
15144         (WebCore::MediaControlRootElementChromium::initializeControls):
15145         * html/shadow/MediaControls.h:
15146         (MediaControls):
15147         * platform/Language.cpp:
15148         (WebCore):
15149         * platform/Language.h:
15150         (WebCore):
15151         * rendering/RenderMediaControls.cpp:
15152         (WebCore::RenderMediaControls::paintMediaControlsPart):
15153         * rendering/RenderMediaControlsChromium.cpp:
15154         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15155
15156 2012-11-09  Dean Jackson  <dino@apple.com>
15157
15158         Support list of tracks in caption media controls
15159         https://bugs.webkit.org/show_bug.cgi?id=101669
15160
15161         Reviewed by Eric Carlson.
15162
15163         Attempt two of commit. The first time caused a build failure on Chromium.
15164
15165         Add some new elements to the media control shadow DOM that display the list of available
15166         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15167         where it is given a very basic design. At the moment only the list of available tracks
15168         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15169
15170         No new tests - this doesn't expose any testable surface.
15171
15172         * css/mediaControls.css: Added default rules that hide the new elements.
15173         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15174         * html/shadow/MediaControlElements.cpp:
15175         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15176         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15177         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15178         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15179         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15180         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15181         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15182         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15183         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15184         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15185         * html/shadow/MediaControlElements.h:
15186         (MediaControlElement):
15187         (MediaControlToggleClosedCaptionsButtonElement):
15188         (MediaControlClosedCaptionsContainerElement):
15189         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15190         * html/shadow/MediaControlRootElement.cpp:
15191         (WebCore::MediaControlRootElement::MediaControlRootElement):
15192         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15193         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15194         (WebCore::MediaControlRootElement::hide):
15195         (WebCore::MediaControlRootElement::makeTransparent):
15196         (WebCore::MediaControlRootElement::reset):
15197         (WebCore::MediaControlRootElement::reportedError):
15198         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15199         (WebCore):
15200         * html/shadow/MediaControlRootElement.h:
15201         (WebCore):
15202         (MediaControlRootElement):
15203         * html/shadow/MediaControlRootElementChromium.cpp:
15204         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15205         * html/shadow/MediaControls.h:
15206         (MediaControls):
15207         * platform/Language.cpp:
15208         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15209         * platform/Language.h:
15210         (WebCore):
15211         * rendering/RenderMediaControls.cpp:
15212         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15213         * rendering/RenderMediaControlsChromium.cpp:
15214         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15215
15216 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15217
15218         Should only fire a single set of mouse events and update hover state once when scrolling is done
15219         https://bugs.webkit.org/show_bug.cgi?id=99940
15220
15221         Reviewed by Levi Weintraub.
15222
15223         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15224         timer is fired, we ensure the actual goal of not firing fake mouse events
15225         until the scroll is completed. This is the core part of this change.
15226         -Change our mouse event throttling to keep a running average of how long
15227         mouse events take and adjust throttling appropriately.
15228         Test: fast/scrolling/fake-mouse-event-throttling.html
15229         -Maintain a minimum throttle of 100ms.
15230
15231         * page/EventHandler.cpp:
15232         (WebCore):
15233         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15234         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15235         Keep track of a running average instead of max. This lets us adjust throttling
15236         dynamically without punishing a page for having a single mouse event handler
15237         that takes disproportionately long.
15238         (RunningAverageDurationTracker):
15239         (WebCore::EventHandler::EventHandler):
15240         (WebCore::EventHandler::clear):
15241         (WebCore::EventHandler::mouseMoved):
15242         (WebCore::EventHandler::handleMouseMoveEvent):
15243         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15244         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15245         * page/EventHandler.h:
15246         (EventHandler):
15247         * platform/Timer.h:
15248         (WebCore::DeferrableOneShotTimer::setDelay):
15249         (WebCore::DeferrableOneShotTimer::delay):
15250         Add a way of adjusting the timer delay.
15251
15252 2012-11-09  Rick Byers  <rbyers@chromium.org>
15253
15254         Move chromium to USE(LAZY_NATIVE_CURSOR)
15255         https://bugs.webkit.org/show_bug.cgi?id=101501
15256
15257         Reviewed by Adam Barth.
15258
15259         This simplifies cursor handling in chromium and unifies it with other
15260         ports for easier code sharing and testing by moving to the
15261         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15262
15263         PlatformCursor adds no value in chromium since the sandboxing model
15264         requires the cursor information be marshalled to the browser process
15265         before being turned into a real OS cursor.
15266
15267         Test: fast/events/mouse-cursor.html
15268
15269         * WebCore.gypi:
15270         * platform/Cursor.h:
15271         (WebCore):
15272         * platform/chromium/CursorChromium.cpp:
15273         (WebCore::Cursor::Cursor):
15274         (WebCore::Cursor::operator=):
15275         (WebCore::Cursor::~Cursor):
15276         (WebCore::Cursor::ensurePlatformCursor):
15277         * platform/chromium/PlatformCursor.h: Removed.
15278
15279 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15280
15281         Allow ports to decide whether an image should be directly composited
15282         https://bugs.webkit.org/show_bug.cgi?id=101827
15283
15284         Reviewed by Simon Fraser.
15285
15286         Tested by compositing/tiling/huge-layer-img.html.
15287
15288         * platform/graphics/GraphicsLayer.h:
15289         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15290             Allow the GraphicsLayer implementation to decide if the image can be composited.
15291
15292         * rendering/RenderLayerBacking.cpp:
15293         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15294             Take onto account the new shouldDirectlyCompositeImage check.
15295
15296 2012-11-09  Dan Bernstein  <mitz@apple.com>
15297
15298         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15299         https://bugs.webkit.org/show_bug.cgi?id=101799
15300
15301         Reviewed by Alexey Proskuryakov.
15302
15303         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15304         different behavior from not setting it at all. We can get the correct behavior and greatly
15305         simplify the code by not setting attributes to their default values.
15306
15307         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15308         Removed redundant #import directives and changed the remaining ones to #include.
15309         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15310         only add attributes that have non-default values.
15311
15312 2012-11-09  Rick Byers  <rbyers@chromium.org>
15313
15314         No tests for changing mouse cursors
15315         https://bugs.webkit.org/show_bug.cgi?id=100550
15316
15317         Reviewed by Adam Barth.
15318
15319         Add infrastructure to keep track of the last set mouse cursor,
15320         and then to query it from DumpRenderTree.
15321
15322         Test: fast/events/mouse-cursor.html
15323
15324         * WebCore.exp.in: Add Cursor copy ctor export
15325         * page/EventHandler.cpp:
15326         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15327         * page/EventHandler.h:
15328         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15329         * testing/Internals.cpp:
15330         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15331         (WebCore):
15332         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15333         * testing/Internals.h: Declare getCurrentCursorInfo
15334         * testing/Internals.idl: Declare getCurrentCursorInfo
15335
15336 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15337
15338         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15339         https://bugs.webkit.org/show_bug.cgi?id=101701
15340
15341         Reviewed by Noam Rosenthal.
15342
15343         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15344         m_rect of TiledBackingStore.
15345
15346         * platform/graphics/TiledBackingStore.h:
15347         (WebCore::TiledBackingStore::rect):
15348
15349 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15350
15351         Unreviewed, rolling out r134139.
15352         http://trac.webkit.org/changeset/134139
15353         https://bugs.webkit.org/show_bug.cgi?id=101823
15354
15355         breaks chromium (android) build (Requested by thorton on
15356         #webkit).
15357
15358         * css/mediaControls.css:
15359         * css/mediaControlsQuickTime.css:
15360         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15361         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15362         * html/shadow/MediaControlElements.cpp:
15363         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15364         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15365         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15366         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15367         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15368         * html/shadow/MediaControlElements.h:
15369         (MediaControlElement):
15370         (MediaControlToggleClosedCaptionsButtonElement):
15371         * html/shadow/MediaControlRootElement.cpp:
15372         (WebCore::MediaControlRootElement::MediaControlRootElement):
15373         (WebCore::MediaControlRootElement::create):
15374         (WebCore::MediaControlRootElement::setMediaController):
15375         (WebCore::MediaControlRootElement::hide):
15376         (WebCore::MediaControlRootElement::makeTransparent):
15377         (WebCore::MediaControlRootElement::reset):
15378         (WebCore::MediaControlRootElement::reportedError):
15379         * html/shadow/MediaControlRootElement.h:
15380         (WebCore):
15381         (MediaControlRootElement):
15382         * html/shadow/MediaControlRootElementChromium.cpp:
15383         (WebCore::MediaControlRootElementChromium::initializeControls):
15384         * html/shadow/MediaControls.h:
15385         (MediaControls):
15386         * platform/Language.cpp:
15387         (WebCore):
15388         * platform/Language.h:
15389         (WebCore):
15390
15391 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15392
15393         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15394         https://bugs.webkit.org/show_bug.cgi?id=101675
15395
15396         Reviewed by Noam Rosenthal.
15397
15398         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15399         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15400         undefined behavior.
15401
15402         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15403         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15404         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15405
15406 2012-11-09  Dean Jackson  <dino@apple.com>
15407
15408         Support list of tracks in caption media controls
15409         https://bugs.webkit.org/show_bug.cgi?id=101669
15410
15411         Reviewed by Eric Carlson.
15412
15413         Add some new elements to the media control shadow DOM that display the list of available
15414         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15415         where it is given a very basic design. At the moment only the list of available tracks
15416         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15417
15418         No new tests - this doesn't expose any testable surface.
15419
15420         * css/mediaControls.css: Added default rules that hide the new elements.
15421         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15422         * html/shadow/MediaControlElements.cpp:
15423         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15424         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15425         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15426         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15427         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15428         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15429         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15430         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15431         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15432         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15433         * html/shadow/MediaControlElements.h:
15434         (MediaControlElement):
15435         (MediaControlToggleClosedCaptionsButtonElement):
15436         (MediaControlClosedCaptionsContainerElement):
15437         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15438         * html/shadow/MediaControlRootElement.cpp:
15439         (WebCore::MediaControlRootElement::MediaControlRootElement):
15440         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15441         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15442         (WebCore::MediaControlRootElement::hide):
15443         (WebCore::MediaControlRootElement::makeTransparent):
15444         (WebCore::MediaControlRootElement::reset):
15445         (WebCore::MediaControlRootElement::reportedError):
15446         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15447         (WebCore):
15448         * html/shadow/MediaControlRootElement.h:
15449         (WebCore):
15450         (MediaControlRootElement):
15451         * html/shadow/MediaControlRootElementChromium.cpp:
15452         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15453         * html/shadow/MediaControls.h:
15454         (MediaControls):
15455         * platform/Language.cpp:
15456         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15457         * platform/Language.h:
15458         (WebCore):
15459
15460 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15461
15462         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15463         https://bugs.webkit.org/show_bug.cgi?id=101551
15464
15465         Reviewed by Adam Barth.
15466
15467         Support decoding color PALETTE images that have an ICC color profile.
15468
15469         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15470
15471         * platform/image-decoders/png/PNGImageDecoder.cpp:
15472         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15473         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15474         corrected. Use the transparency count from the tRNS reader to detect the expansion
15475         of RGB and PALLETE image pixels to RGBA.
15476
15477 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15478
15479         Correct hit-test point scaling for document.elementFromPoint
15480         https://bugs.webkit.org/show_bug.cgi?id=101798
15481
15482         Reviewed by Adam Barth.
15483
15484         The hit-test point come from user JavaScript is in the document coordinate.
15485         Convert to the frame coordinate with correct scale factor for hit test.
15486
15487         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15488
15489         * dom/Document.cpp:
15490         (WebCore::nodeFromPoint):
15491
15492 2012-11-09  Alec Flett  <alecflett@chromium.org>
15493
15494         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15495         https://bugs.webkit.org/show_bug.cgi?id=101415
15496
15497         Reviewed by Tony Chang.
15498
15499         Combine abstract interface IDBBackingStore with its only
15500         implementation, IDBLevelDBBackingStore, to reduce code
15501         complexity. The legacy structure existed to support a SQLLite
15502         IDBBackingStore, but it is no longer worth the complexity to
15503         support this abstraction.
15504
15505         Changes include:
15506         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15507
15508         2) Merge together IDBBackingStore's inner classes: Cursor,
15509         Transaction, and ObjectStoreRecordIdentfier with their respective
15510         subclasses in IDBLevelDBBackingStore.
15511
15512         3) Simplifying the inner Transaction class to not be refcounted or
15513         virtualized, to allow it to be a simple concrete member of its
15514         owner, IDBTransactionBackendImpl.
15515
15516         No new tests as this is purely a refactor.
15517
15518         * Modules/indexeddb/IDBBackingStore.cpp:
15519         (WebCore::recordInternalError):
15520         (WebCore::setUpMetadata):
15521         (WebCore::IDBBackingStore::IDBBackingStore):
15522         (WebCore):
15523         (WebCore::IDBBackingStore::~IDBBackingStore):
15524         (WebCore::IDBBackingStore::open):
15525         (WebCore::IDBBackingStore::getDatabaseNames):
15526         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15527         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15528         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15529         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15530         (WebCore::deleteRange):
15531         (WebCore::IDBBackingStore::deleteDatabase):
15532         (WebCore::IDBBackingStore::getObjectStores):
15533         (WebCore::setMaxObjectStoreId):
15534         (WebCore::IDBBackingStore::createObjectStore):
15535         (WebCore::IDBBackingStore::deleteObjectStore):
15536         (WebCore::IDBBackingStore::getRecord):
15537         (WebCore::IDBBackingStore::putRecord):
15538         (WebCore::IDBBackingStore::clearObjectStore):
15539         (WebCore::IDBBackingStore::deleteRecord):
15540         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15541         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15542         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15543         (WebCore::IDBBackingStore::getIndexes):
15544         (WebCore::setMaxIndexId):
15545         (WebCore::IDBBackingStore::createIndex):
15546         (WebCore::IDBBackingStore::deleteIndex):
15547         (WebCore::IDBBackingStore::putIndexDataForRecord):
15548         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15549         (WebCore::IDBBackingStore::findKeyInIndex):
15550         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15551         (WebCore::IDBBackingStore::keyExistsInIndex):
15552         (WebCore::IDBBackingStore::Cursor::Cursor):
15553         (WebCore::IDBBackingStore::Cursor::firstSeek):
15554         (WebCore::IDBBackingStore::Cursor::advance):
15555         (WebCore::IDBBackingStore::Cursor::continueFunction):
15556         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15557         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15558         (WebCore::ObjectStoreKeyCursorImpl::create):
15559         (ObjectStoreKeyCursorImpl):
15560         (WebCore::ObjectStoreKeyCursorImpl::value):
15561         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15562         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15563         (WebCore::ObjectStoreCursorImpl::create):
15564         (ObjectStoreCursorImpl):
15565         (WebCore::ObjectStoreCursorImpl::value):
15566         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15567         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15568         (WebCore::IndexKeyCursorImpl::create):
15569         (IndexKeyCursorImpl):
15570         (WebCore::IndexKeyCursorImpl::value):
15571         (WebCore::IndexKeyCursorImpl::primaryKey):
15572         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15573         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15574         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15575         (WebCore::IndexCursorImpl::create):
15576         (IndexCursorImpl):
15577         (WebCore::IndexCursorImpl::value):
15578         (WebCore::IndexCursorImpl::primaryKey):
15579         (WebCore::IndexCursorImpl::recordIdentifier):
15580         (WebCore::IndexCursorImpl::IndexCursorImpl):
15581         (WebCore::IndexCursorImpl::loadCurrentRow):
15582         (WebCore::objectStoreCursorOptions):
15583         (WebCore::indexCursorOptions):
15584         (WebCore::IDBBackingStore::openObjectStoreCursor):
15585         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15586         (WebCore::IDBBackingStore::openIndexKeyCursor):
15587         (WebCore::IDBBackingStore::openIndexCursor):
15588         (WebCore::IDBBackingStore::Transaction::Transaction):
15589         (WebCore::IDBBackingStore::Transaction::begin):
15590         (WebCore::IDBBackingStore::Transaction::commit):
15591         (WebCore::IDBBackingStore::Transaction::rollback):
15592         * Modules/indexeddb/IDBBackingStore.h:
15593         (WebCore):
15594         (IDBBackingStore):
15595         (RecordIdentifier):
15596         (WebCore::IDBBackingStore::RecordIdentifier::create):
15597         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15598         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15599         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15600         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15601         (WebCore::IDBBackingStore::RecordIdentifier::version):
15602         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15603         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15604         (Transaction):
15605         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15606         (CursorOptions):
15607         (Cursor):
15608         (WebCore::IDBBackingStore::Cursor::Cursor):
15609         (WebCore::IDBBackingStore::Cursor::key):
15610         (WebCore::IDBBackingStore::Cursor::primaryKey):
15611         (WebCore::IDBBackingStore::Cursor::~Cursor):
15612         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15613         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15614         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15615         (WebCore::IDBIndexBackendImpl::countInternal):
15616         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15617         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15618         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15619         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15620         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15621         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15622         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15623         (WebCore::IDBTransactionBackendImpl::abort):
15624         (WebCore::IDBTransactionBackendImpl::commit):
15625         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15626         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15627         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15628         * WebCore.xcodeproj/project.pbxproj:
15629
15630 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15631
15632         Correct scroll adjustment for touchEvent.clientX/clientY
15633         https://bugs.webkit.org/show_bug.cgi?id=101800
15634
15635         Reviewed by Adam Barth.
15636
15637         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15638         Convert to document coordinate before passing to JavaScript.
15639
15640         Test: fast/events/touch/touch-scaled-scrolled.html
15641
15642         * dom/Touch.cpp:
15643         (WebCore::contentsX):
15644         (WebCore::contentsY):
15645
15646 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15647
15648         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15649         https://bugs.webkit.org/show_bug.cgi?id=98990
15650
15651         Reviewed by Noam Rosenthal.
15652
15653         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15654         required code to make a depth buffer for a BitmapTextureGL.
15655
15656         Note that the code is not optimized yet, so it will always recompile the shader.
15657
15658         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15659
15660         * platform/graphics/texmap/TextureMapperGL.cpp:
15661         (WebCore::BitmapTextureGL::BitmapTextureGL):
15662         (WebCore::getPassesRequiredForFilter):
15663         (WebCore):
15664         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15665         (WebCore::BitmapTextureGL::applyFilters):
15666         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15667         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15668         * platform/graphics/texmap/TextureMapperGL.h:
15669         (BitmapTextureGL):
15670
15671 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15672
15673         CustomEvent: Allow taking in a serialized value during initialization.
15674         https://bugs.webkit.org/show_bug.cgi?id=101348
15675
15676         Reviewed by Adam Barth.
15677
15678         If a CustomEvent is initialized using a serialized value, then for each access
15679         to |detail|, the value is deserialized first. This way, each world gets a different
15680         deserialization.
15681
15682         * UseV8.cmake:
15683         * WebCore.gypi:
15684         * bindings/v8/V8HiddenPropertyName.h:
15685         (WebCore):
15686         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15687         (WebCore):
15688         (WebCore::V8CustomEvent::detailAccessorGetter):
15689         * dom/CustomEvent.cpp:
15690         (WebCore::CustomEvent::initCustomEvent):
15691         (WebCore):
15692         * dom/CustomEvent.h:
15693         (CustomEvent):
15694         (WebCore::CustomEvent::serializedScriptValue):
15695         * dom/CustomEvent.idl:
15696
15697 2012-11-09  Brady Eidson  <beidson@apple.com>
15698
15699         Implement WebResourceBuffer::isEmpty()
15700         https://bugs.webkit.org/show_bug.cgi?id=101805
15701
15702         Reviewed by Alexey Proskuryakov.
15703
15704         This is required to make the existing subresource loading in NetworkProcess work correctly,
15705         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15706         the data to the ResourceLoader.
15707
15708         No new tests (No change in behavior in any configuration we test.)
15709
15710         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15711
15712 2012-11-09  Michael Saboff  <msaboff@apple.com>
15713
15714         HTML Attributes names and values should be created as 8 bit string where possible
15715         https://bugs.webkit.org/show_bug.cgi?id=101781
15716
15717         Reviewed by Filip Pizlo.
15718
15719         Given that almost all attribute names and values are lower case ASCII, we should try to
15720         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15721         an 8 bit string, so that didn't need to change.
15722
15723         No new tests, functionality covered by existing tests.
15724
15725         * html/HTMLViewSourceDocument.cpp:
15726         (WebCore::HTMLViewSourceDocument::processTagToken):
15727         * html/parser/HTMLMetaCharsetParser.cpp:
15728         (WebCore::HTMLMetaCharsetParser::processMeta):
15729         * html/parser/HTMLPreloadScanner.cpp:
15730         (WebCore::PreloadTask::processAttributes):
15731
15732 2012-11-09  Dana Jansens  <danakj@chromium.org>
15733
15734         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15735         https://bugs.webkit.org/show_bug.cgi?id=101795
15736
15737         Reviewed by James Robinson.
15738
15739         * WebCore.gyp/WebCore.gyp:
15740
15741 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15742
15743         Unreviewed, rolling out r134101.
15744         http://trac.webkit.org/changeset/134101
15745         https://bugs.webkit.org/show_bug.cgi?id=101790
15746
15747         IDBDatabaseBackendTest.BackingStoreRetention failing
15748         (Requested by jsbell|gardener on #webkit).
15749
15750         * GNUmakefile.list.am:
15751         * Modules/indexeddb/IDBBackingStore.cpp:
15752         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15753         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15754         (WebCore::IDBLevelDBBackingStore::open):
15755         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15756         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15757         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15758         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15759         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15760         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15761         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15762         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15763         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15764         (WebCore::IDBLevelDBBackingStore::getRecord):
15765         (WebCore):
15766         (WebCore::IDBLevelDBBackingStore::putRecord):
15767         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15768         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15769         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15770         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15771         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15772         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15773         (WebCore::IDBLevelDBBackingStore::getIndexes):
15774         (WebCore::IDBLevelDBBackingStore::createIndex):
15775         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15776         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15777         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15778         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15779         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15780         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15781         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15782         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15783         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15784         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15785         (WebCore::IDBLevelDBBackingStore::createTransaction):
15786         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15787         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15788         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15789         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15790         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15791         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15792         * Modules/indexeddb/IDBBackingStore.h:
15793         (WebCore):
15794         (WebCore::IDBBackingStore::~IDBBackingStore):
15795         (IDBBackingStore):
15796         (RecordIdentifier):
15797         (WebCore::IDBBackingStore::Cursor::~Cursor):
15798         (WebCore::IDBBackingStore::Transaction::~Transaction):
15799         (Transaction):
15800         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15801         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15802         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15803         (WebCore):
15804         (IDBLevelDBBackingStore):
15805         (Transaction):
15806         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15807         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15808         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15809         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15810         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15811         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15812         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15813         (WebCore::IDBTransactionBackendImpl::abort):
15814         (WebCore::IDBTransactionBackendImpl::commit):
15815         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15816         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15817         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15818         * WebCore.xcodeproj/project.pbxproj:
15819
15820 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15821
15822         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15823         https://bugs.webkit.org/show_bug.cgi?id=101627
15824
15825         Reviewed by Alexey Proskuryakov.
15826
15827         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15828         was changed. If an element is moved from a standards document to a quirks mode document the
15829         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15830
15831         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15832
15833         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15834
15835         * html/ClassList.cpp:
15836         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15837                                           it is up to date.
15838         * html/ClassList.h:
15839
15840 2012-11-09  Alec Flett  <alecflett@chromium.org>
15841
15842         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15843         https://bugs.webkit.org/show_bug.cgi?id=101415
15844
15845         Reviewed by Tony Chang.
15846
15847         Combine abstract interface IDBBackingStore with its only
15848         implementation, IDBLevelDBBackingStore, to reduce code
15849         complexity. The legacy structure existed to support a SQLLite
15850         IDBBackingStore, but it is no longer worth the complexity to
15851         support this abstraction.
15852
15853         Changes include:
15854         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15855
15856         2) Merge together IDBBackingStore's inner classes: Cursor,
15857         Transaction, and ObjectStoreRecordIdentfier with their respective
15858         subclasses in IDBLevelDBBackingStore.
15859
15860         3) Simplifying the inner Transaction class to not be refcounted or
15861         virtualized, to allow it to be a simple concrete member of its
15862         owner, IDBTransactionBackendImpl.
15863
15864         No new tests as this is purely a refactor.
15865
15866         * Modules/indexeddb/IDBBackingStore.cpp:
15867         (WebCore::recordInternalError):
15868         (WebCore::setUpMetadata):
15869         (WebCore::IDBBackingStore::IDBBackingStore):
15870         (WebCore):
15871         (WebCore::IDBBackingStore::~IDBBackingStore):
15872         (WebCore::IDBBackingStore::open):
15873         (WebCore::IDBBackingStore::getDatabaseNames):
15874         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15875         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15876         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15877         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15878         (WebCore::deleteRange):
15879         (WebCore::IDBBackingStore::deleteDatabase):
15880         (WebCore::IDBBackingStore::getObjectStores):
15881         (WebCore::setMaxObjectStoreId):
15882         (WebCore::IDBBackingStore::createObjectStore):
15883         (WebCore::IDBBackingStore::deleteObjectStore):
15884         (WebCore::IDBBackingStore::getRecord):
15885         (WebCore::IDBBackingStore::putRecord):
15886         (WebCore::IDBBackingStore::clearObjectStore):
15887         (WebCore::IDBBackingStore::deleteRecord):
15888         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15889         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15890         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15891         (WebCore::IDBBackingStore::getIndexes):
15892         (WebCore::setMaxIndexId):
15893         (WebCore::IDBBackingStore::createIndex):
15894         (WebCore::IDBBackingStore::deleteIndex):
15895         (WebCore::IDBBackingStore::putIndexDataForRecord):
15896         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15897         (WebCore::IDBBackingStore::findKeyInIndex):
15898         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15899         (WebCore::IDBBackingStore::keyExistsInIndex):
15900         (WebCore::IDBBackingStore::Cursor::Cursor):
15901         (WebCore::IDBBackingStore::Cursor::firstSeek):
15902         (WebCore::IDBBackingStore::Cursor::advance):
15903         (WebCore::IDBBackingStore::Cursor::continueFunction):
15904         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15905         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15906         (WebCore::ObjectStoreKeyCursorImpl::create):
15907         (ObjectStoreKeyCursorImpl):
15908         (WebCore::ObjectStoreKeyCursorImpl::value):
15909         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15910         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15911         (WebCore::ObjectStoreCursorImpl::create):
15912         (ObjectStoreCursorImpl):
15913         (WebCore::ObjectStoreCursorImpl::value):
15914         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15915         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15916         (WebCore::IndexKeyCursorImpl::create):
15917         (IndexKeyCursorImpl):
15918         (WebCore::IndexKeyCursorImpl::value):
15919         (WebCore::IndexKeyCursorImpl::primaryKey):
15920         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15921         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15922         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15923         (WebCore::IndexCursorImpl::create):
15924         (IndexCursorImpl):
15925         (WebCore::IndexCursorImpl::value):
15926         (WebCore::IndexCursorImpl::primaryKey):
15927         (WebCore::IndexCursorImpl::recordIdentifier):
15928         (WebCore::IndexCursorImpl::IndexCursorImpl):
15929         (WebCore::IndexCursorImpl::loadCurrentRow):
15930         (WebCore::objectStoreCursorOptions):
15931         (WebCore::indexCursorOptions):
15932         (WebCore::IDBBackingStore::openObjectStoreCursor):
15933         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15934         (WebCore::IDBBackingStore::openIndexKeyCursor):
15935         (WebCore::IDBBackingStore::openIndexCursor):
15936         (WebCore::IDBBackingStore::Transaction::Transaction):
15937         (WebCore::IDBBackingStore::Transaction::begin):
15938         (WebCore::IDBBackingStore::Transaction::commit):
15939         (WebCore::IDBBackingStore::Transaction::rollback):
15940         * Modules/indexeddb/IDBBackingStore.h:
15941         (WebCore):
15942         (IDBBackingStore):
15943         (RecordIdentifier):
15944         (WebCore::IDBBackingStore::RecordIdentifier::create):
15945         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15946         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15947         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15948         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15949         (WebCore::IDBBackingStore::RecordIdentifier::version):
15950         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15951         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15952         (Transaction):
15953         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15954         (CursorOptions):
15955         (Cursor):
15956         (WebCore::IDBBackingStore::Cursor::Cursor):
15957         (WebCore::IDBBackingStore::Cursor::key):
15958         (WebCore::IDBBackingStore::Cursor::primaryKey):
15959         (WebCore::IDBBackingStore::Cursor::~Cursor):
15960         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15961         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15962         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15963         (WebCore::IDBIndexBackendImpl::countInternal):
15964         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15965         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15966         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15967         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15968         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15969         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15970         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15971         (WebCore::IDBTransactionBackendImpl::abort):
15972         (WebCore::IDBTransactionBackendImpl::commit):
15973         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15974         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15975         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15976         * WebCore.xcodeproj/project.pbxproj:
15977
15978 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15979
15980         Make -webkit-canvas in CSS use the full backing store instead
15981         of always 1x when rendering.
15982
15983         https://bugs.webkit.org/show_bug.cgi?id=100611
15984
15985         Reviewed by Dean Jackson.
15986
15987         Test: fast/canvas/canvas-as-image-hidpi.html
15988
15989         * html/HTMLCanvasElement.cpp:
15990         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
15991         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
15992         * platform/graphics/ImageBuffer.h:
15993         * platform/graphics/cg/ImageBufferCG.cpp:
15994         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
15995         * platform/graphics/cairo/ImageBufferCairo.cpp:
15996         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
15997         * platform/graphics/qt/ImageBufferQt.cpp:
15998         (WebCore::ImageBuffer::copyImage): Ditto.
15999         * platform/graphics/skia/ImageBufferSkia.cpp:
16000         (WebCore::ImageBuffer::copyImage): Ditto.
16001         * platform/graphics/wince/ImageBufferWinCE.cpp:
16002         (WebCore::ImageBuffer::copyImage): Ditto.
16003         * platform/graphics/wx/ImageBufferWx.cpp:
16004         (WebCore::ImageBuffer::copyImage): Ditto.
16005
16006 2012-10-28  Timothy Hatcher  <timothy@apple.com>
16007
16008         Reset the canvas backing store pixel ratio when the buffer resizes.
16009
16010         The backing store was not being recreated using the current page pixel ratio
16011         when a resize occurred.
16012
16013         https://bugs.webkit.org/show_bug.cgi?id=100608
16014
16015         Reviewed by Darin Adler.
16016
16017         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
16018
16019         * html/HTMLCanvasElement.cpp:
16020         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
16021         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
16022         match. Store the new pixel ratio in m_deviceScaleFactor.
16023         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
16024         * html/HTMLCanvasElement.h:
16025         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
16026         pixel ratios match.
16027
16028 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
16029
16030         RemoveFormat command doesn't remove background color
16031         https://bugs.webkit.org/show_bug.cgi?id=101682
16032
16033         Reviewed by Tony Chang.
16034
16035         Fixed the bug by removing all non-transparent background-color properties.
16036
16037         Test: editing/execCommand/remove-format-background-color.html
16038
16039         * editing/RemoveFormatCommand.cpp:
16040         (WebCore::RemoveFormatCommand::doApply):
16041
16042 2012-11-09  Alec Flett  <alecflett@chromium.org>
16043
16044         IndexedDB: switch frontend to use int64_t-based references
16045         https://bugs.webkit.org/show_bug.cgi?id=100426
16046
16047         Reviewed by Tony Chang.
16048
16049         Remove String-based objectStore/index references, obsoleted by
16050         https://bugs.webkit.org/show_bug.cgi?id=100425.
16051
16052         No new tests as this is the second half of a refactor.
16053
16054         * Modules/indexeddb/IDBCallbacks.h:
16055         * Modules/indexeddb/IDBDatabase.cpp:
16056         (WebCore::IDBDatabase::deleteObjectStore):
16057         (WebCore::IDBDatabase::transaction):
16058         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16059         (WebCore::IDBDatabaseBackendImpl::setVersion):
16060         (WebCore::IDBDatabaseBackendImpl::transaction):
16061         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16062         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16063         (IDBDatabaseBackendImpl):
16064         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16065         (IDBDatabaseBackendInterface):
16066         * Modules/indexeddb/IDBMetadata.h:
16067         (WebCore::IDBObjectStoreMetadata::findIndex):
16068         (IDBObjectStoreMetadata):
16069         (WebCore::IDBObjectStoreMetadata::containsIndex):
16070         * Modules/indexeddb/IDBObjectStore.cpp:
16071         (WebCore::IDBObjectStore::put):
16072         (WebCore):
16073         (WebCore::IDBObjectStore::index):
16074         (WebCore::IDBObjectStore::deleteIndex):
16075         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16076         (WebCore::IDBObjectStoreBackendImpl::put):
16077         (WebCore):
16078         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16079         (IDBObjectStoreBackendImpl):
16080         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16081         * inspector/Inspector-1.0.json:
16082         * inspector/Inspector.json:
16083         * inspector/InspectorIndexedDBAgent.cpp:
16084         (WebCore):
16085         (WebCore::InspectorIndexedDBAgent::requestData):
16086         * inspector/InspectorIndexedDBAgent.h:
16087         (InspectorIndexedDBAgent):
16088
16089 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
16090
16091         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
16092         https://bugs.webkit.org/show_bug.cgi?id=101727
16093
16094         Reviewed by Chris Fleizach.
16095
16096         Added conditional compilation checks for GTK+ specific
16097         accessibility code, to pave the way for sharing this
16098         implementation with other ports (e.g WebKitEFL).
16099
16100         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16101         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16102         compilation checks, only implementing it in GTK so far.
16103         (webkitAccessibleTextGetTextAtOffset): Ditto.
16104         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16105         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16106         (atkParentOfRootObject): Added conditional compilation checks,
16107         only implementing in GTK the part of getting the accessible object
16108         for the root object.
16109         (webkitAccessibleGetParent): Updated comments.
16110         (webkitAccessibleGetNChildren): Ditto.
16111         (webkitAccessibleRefChild): Ditto.
16112         (webkitAccessibleGetIndexInParent): Ditto.
16113         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16114         for GTK. Other ports might be interested in this too.
16115         (setAtkStateSetFromCoreObject): Updated comments.
16116
16117 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16118
16119         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16120         https://bugs.webkit.org/show_bug.cgi?id=101586
16121
16122         Reviewed by Adam Barth.
16123
16124         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16125         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16126         API some WebCore objects might be cleaned away which is not allowed at this stage.
16127
16128         This behaviour is not possible to test unfortunately in webkit.
16129
16130         * Modules/mediastream/RTCPeerConnection.cpp:
16131         (WebCore::RTCPeerConnection::stop):
16132
16133 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16134
16135         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16136
16137         * WebCore.gypi:
16138
16139 2012-11-09  Dan Carney  <dcarney@google.com>
16140
16141         [V8] Remove ScriptController::windowShell()
16142         https://bugs.webkit.org/show_bug.cgi?id=100235
16143
16144         Reviewed by Adam Barth.
16145
16146         Refactored windowShell(DOMWrapperWorld*) and
16147         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16148
16149         No new tests. No change in functionality.
16150
16151         * bindings/scripts/CodeGeneratorV8.pm:
16152         (GenerateToV8Converters):
16153         * bindings/v8/DOMWrapperWorld.cpp:
16154         (WebCore::isolatedWorldMap):
16155         (WebCore::DOMWrapperWorld::getAllWorlds):
16156         (WebCore):
16157         * bindings/v8/DOMWrapperWorld.h:
16158         (DOMWrapperWorld):
16159         * bindings/v8/PageScriptDebugServer.cpp:
16160         (WebCore::PageScriptDebugServer::addListener):
16161         * bindings/v8/ScriptController.cpp:
16162         (WebCore::ScriptController::~ScriptController):
16163         (WebCore::ScriptController::clearForOutOfMemory):
16164         (WebCore):
16165         (WebCore::ScriptController::clearForClose):
16166         (WebCore::ScriptController::updateSecurityOrigin):
16167         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16168         (WebCore::existingWindowShellWorkaroundWorld):
16169         (WebCore::ScriptController::existingWindowShell):
16170         (WebCore::ScriptController::windowShell):
16171         (WebCore::ScriptController::evaluateInIsolatedWorld):
16172         (WebCore::ScriptController::currentWorldContext):
16173         (WebCore::ScriptController::mainWorldContext):
16174         (WebCore::ScriptController::haveInterpreter):
16175         (WebCore::ScriptController::enableEval):
16176         (WebCore::ScriptController::disableEval):
16177         (WebCore::ScriptController::clearWindowShell):
16178         (WebCore::ScriptController::setContextDebugId):
16179         (WebCore::ScriptController::updateDocument):
16180         (WebCore::ScriptController::namedItemAdded):
16181         (WebCore::ScriptController::namedItemRemoved):
16182         * bindings/v8/ScriptController.h:
16183         (ScriptController):
16184         (WebCore::ScriptController::getAllWorlds):
16185         * bindings/v8/V8Binding.cpp:
16186         (WebCore::perContextDataForCurrentWorld):
16187         (WebCore::handleOutOfMemory):
16188         * bindings/v8/V8DOMWindowShell.cpp:
16189         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16190         (WebCore::V8DOMWindowShell::updateDocument):
16191         (WebCore::V8DOMWindowShell::namedItemAdded):
16192         (WebCore::V8DOMWindowShell::namedItemRemoved):
16193         * bindings/v8/V8DOMWindowShell.h:
16194         (WebCore::V8DOMWindowShell::isContextInitialized):
16195         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16196         * bindings/v8/custom/V8DocumentCustom.cpp:
16197         (WebCore::toV8):
16198         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16199         (WebCore::toV8):
16200         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16201         (WebCore::toV8):
16202
16203 2012-11-09  Adam Barth  <abarth@webkit.org>
16204
16205         [V8] Remove a level of indirection in DOMDataStore
16206         https://bugs.webkit.org/show_bug.cgi?id=101690
16207
16208         Reviewed by Kentaro Hara.
16209
16210         There is no longer any reason for the DOMDataStore to hold the wrapper
16211         map via a pointer. It can just hold the wrapper map directly, saving a
16212         level of indirection. I doubt this has any measurable performance gain.
16213
16214         * bindings/v8/DOMDataStore.cpp:
16215         (WebCore::DOMDataStore::DOMDataStore):
16216         (WebCore::DOMDataStore::~DOMDataStore):
16217         (WebCore::DOMDataStore::reportMemoryUsage):
16218         * bindings/v8/DOMDataStore.h:
16219         (WebCore::DOMDataStore::get):
16220         (WebCore::DOMDataStore::set):
16221         (DOMDataStore):
16222
16223 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16224
16225         [CSSRegions] Region styling properties are not filtered correctly
16226         https://bugs.webkit.org/show_bug.cgi?id=101768
16227
16228         Reviewed by Andreas Kling.
16229
16230         Region styling allows only a handful of css properties. There is a mechanism in place,
16231         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16232         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16233         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16234
16235         Test: fast/regions/region-style-not-supported-properties.html
16236
16237         * css/RuleSet.cpp:
16238         (WebCore::RuleData::RuleData):
16239
16240 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16241
16242         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16243         https://bugs.webkit.org/show_bug.cgi?id=101730
16244
16245         Reviewed by Adam Barth.
16246
16247         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16248         files relating to the old API.
16249
16250         No testing needed, the remaining tests makes sure that nothing else breaks.
16251
16252         * CMakeLists.txt:
16253         * GNUmakefile.list.am:
16254         * Modules/mediastream/DOMWindowMediaStream.idl:
16255         * Modules/mediastream/IceCallback.h: Removed.
16256         * Modules/mediastream/IceCallback.idl: Removed.
16257         * Modules/mediastream/IceCandidate.cpp: Removed.
16258         * Modules/mediastream/IceCandidate.h: Removed.
16259         * Modules/mediastream/IceCandidate.idl: Removed.
16260         * Modules/mediastream/PeerConnection00.cpp: Removed.
16261         * Modules/mediastream/PeerConnection00.h: Removed.
16262         * Modules/mediastream/PeerConnection00.idl: Removed.
16263         * Modules/mediastream/SessionDescription.cpp: Removed.
16264         * Modules/mediastream/SessionDescription.h: Removed.
16265         * Modules/mediastream/SessionDescription.idl: Removed.
16266         * WebCore.gypi:
16267         * bindings/generic/RuntimeEnabledFeatures.cpp:
16268         (WebCore):
16269         * bindings/generic/RuntimeEnabledFeatures.h:
16270         (RuntimeEnabledFeatures):
16271         * dom/EventTargetFactory.in:
16272         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16273         * platform/chromium/support/WebICEOptions.cpp: Removed.
16274         * platform/chromium/support/WebMediaHints.cpp: Removed.
16275         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16276         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16277         * platform/mediastream/IceOptions.cpp: Removed.
16278         * platform/mediastream/IceOptions.h: Removed.
16279         * platform/mediastream/MediaHints.cpp: Removed.
16280         * platform/mediastream/MediaHints.h: Removed.
16281         * platform/mediastream/MediaStreamCenter.h:
16282         (WebCore):
16283         (MediaStreamCenter):
16284         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16285         * platform/mediastream/PeerConnection00Handler.h: Removed.
16286         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16287         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16288         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16289         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16290         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16291         (WebCore):
16292         (MediaStreamCenterBlackBerry):
16293         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16294         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16295         (WebCore):
16296         (MediaStreamCenterChromium):
16297         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16298         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16299         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16300         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16301         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16302         (WebCore):
16303         (MediaStreamCenterGStreamer):
16304
16305 2012-11-09  Jer Noble  <jer.noble@apple.com>
16306
16307         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16308         https://bugs.webkit.org/show_bug.cgi?id=101679
16309
16310         Reviewed by Eric Carlson.
16311
16312         Log the basename of the plugin file rather than the mime type so as to more
16313         accurately log which plugin was used to handle the request.
16314
16315         * loader/SubframeLoader.cpp:
16316         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16317         * plugins/PluginData.cpp:
16318         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16319         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16320         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16321         * plugins/PluginData.h:
16322
16323 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16324
16325         CookieJar uses Document class, which is a layering violation
16326         https://bugs.webkit.org/show_bug.cgi?id=101621
16327
16328         Reviewed by Brady Eidson.
16329
16330         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16331         platform one, using NetworkingContext to access the correct platform storage.
16332
16333         * GNUmakefile.list.am:
16334         * PlatformBlackBerry.cmake:
16335         * Target.pri:
16336         * WebCore.gypi:
16337         * WebCore.gyp/WebCore.gyp:
16338         * WebCore.vcproj/WebCore.vcproj:
16339         * WebCore.xcodeproj/project.pbxproj:
16340         Updated.
16341
16342         * loader/CookieJar.cpp: Added.
16343         (WebCore::networkingContext):
16344         (WebCore::cookies):
16345         (WebCore::setCookies):
16346         (WebCore::cookiesEnabled):
16347         (WebCore::cookieRequestHeaderFieldValue):
16348         (WebCore::getRawCookies):
16349         (WebCore::deleteCookie):
16350         (WebCore::getHostnamesWithCookies):
16351         (WebCore::deleteCookiesForHostname):
16352         (WebCore::deleteAllCookies):
16353         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16354         This is an adaptor for pure platform implementations. Clients continue to use the
16355         old interface unchanged.
16356
16357         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16358         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16359         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16360         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16361         These platforms do not have a pure platform implementation yet, so they just keep
16362         to use original implementations. Since the code is not in platform/ any more, the
16363         violation is resolved for Chromium and Blackberry, too.
16364
16365         * platform/CookieJar.h: Removed.
16366         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16367         The platform interface is now more uniform - all functions take a NetworkingContext
16368         instead of hardcoding which cookie storage to use in some cases.
16369         Renamed functions that are only useful for document.cookie implementation to look
16370         less generic.
16371
16372         * platform/mac/CookieJar.mm: Removed.
16373         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16374         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16375         takes a firstParty URL (unused on Mac, but used on some other platforms).
16376         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16377         use shared one if context is null).
16378         (WebCore::setCookiesFromDOM): Ditto.
16379         (WebCore::cookiesEnabled): Ditto.
16380         (WebCore::getRawCookies): Ditto.
16381         (WebCore::deleteCookie): Ditto.
16382         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16383         but its cleaner to have a uniform interface.
16384         (WebCore::deleteCookiesForHostname): Ditto.
16385         (WebCore::deleteAllCookies): Ditto.
16386
16387         * platform/network/cf/CookieJarCFNet.cpp:
16388         Same changes as on Mac.
16389
16390         * platform/network/curl/CookieJarCurl.cpp:
16391         Updated for new interface. Implementation is largely a dummy one.
16392
16393         * platform/qt/CookieJarQt.h: Removed.
16394         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16395         Moved to a common location, most cookie files were in network/ already.
16396
16397         * platform/qt/CookieJarQt.cpp: Removed.
16398         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16399         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16400         (WebCore::cookiesForDOM): Ditto.
16401         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16402         (WebCore::cookiesEnabled): Ditto.
16403         (WebCore::getRawCookies): Ditto.
16404         (WebCore::deleteCookie): Ditto.
16405         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16406         jar here, assert that argument does not request another one.
16407         (WebCore::deleteCookiesForHostname): Ditto.
16408         (WebCore::deleteAllCookies): Ditto.
16409
16410         * platform/network/soup/CookieJarSoup.cpp:
16411         (WebCore::cookieJarForContext):
16412         (WebCore::setCookiesFromDOM):
16413         (WebCore::cookiesForContext):
16414         (WebCore::cookiesForDOM):
16415         (WebCore::cookieRequestHeaderFieldValue):
16416         (WebCore::cookiesEnabled):
16417         (WebCore::getRawCookies):
16418         (WebCore::deleteCookie):
16419         (WebCore::getHostnamesWithCookies):
16420         (WebCore::deleteCookiesForHostname):
16421         (WebCore::deleteAllCookies):
16422         Updated for new function signatures, and use the same cross-platform logic for
16423         choosing a cookie jar.
16424
16425         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16426         
16427         * platform/network/win/CookieJarWin.cpp:
16428         (WebCore::setCookiesFromDOM):
16429         (WebCore::cookiesForDOM):
16430         (WebCore::cookieRequestHeaderFieldValue):
16431         (WebCore::cookiesEnabled):
16432         (WebCore::getRawCookies):
16433         (WebCore::deleteCookie):
16434         (WebCore::getHostnamesWithCookies):
16435         (WebCore::deleteCookiesForHostname):
16436         (WebCore::deleteAllCookies):
16437         Updated for new function signatures.
16438
16439 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16440
16441         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16442         https://bugs.webkit.org/show_bug.cgi?id=101750
16443
16444         Reviewed by Ojan Vafai.
16445
16446         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16447         "text-decoration" property, but recently have its parser function modified by
16448         the addition of CSS3 "-webkit-text-decoration-line" property.
16449
16450         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16451         layout test is updated with all possible value combinations.
16452
16453         * css/CSSParser.cpp:
16454         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16455         if accepted.
16456
16457 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16458
16459         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16460         https://bugs.webkit.org/show_bug.cgi?id=101581
16461
16462         Reviewed by Martin Robinson.
16463
16464         Use normal GNU Make wildcards instead of 'ls' to list files in
16465         EXTRA_DIST, it's safer and more straightforward.
16466
16467         * GNUmakefile.am: ditto.
16468
16469 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16470
16471         Need to clear exception in JSDictionary that might have been caused by previous operation.
16472         https://bugs.webkit.org/show_bug.cgi?id=96614
16473
16474         Reviewed by George Staikos.
16475
16476         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16477         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16478         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16479         will leave the internal ExecState of Dictionary in exception state. We need to clear
16480         the exception state before the 2nd query, otherwise the second query will also fail.
16481
16482         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16483         now work with this patch.
16484         * bindings/js/JSDictionary.cpp:
16485         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16486
16487 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16488
16489         Month/week picker should submit month/week string
16490         https://bugs.webkit.org/show_bug.cgi?id=101744
16491
16492         Reviewed by Kent Tamura.
16493
16494         Month/week picker should submit month/week string and not yyyy-mm-dd.
16495
16496         No new tests. Test will be added in Bug 101555 and Bug 101556.
16497
16498         * Resources/pagepopups/calendarPicker.js:
16499         (DaysTable.prototype._handleDayClick):
16500
16501 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16502
16503         Web Inspector: wrong output for empty object {}
16504         https://bugs.webkit.org/show_bug.cgi?id=101356
16505
16506         Reviewed by Vsevolod Vlasov.
16507
16508         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16509
16510         * inspector/InjectedScriptSource.js:
16511         (.):
16512         * inspector/front-end/ConsoleMessage.js:
16513         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16514
16515 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16516
16517         Fix annotations in page popup files
16518         https://bugs.webkit.org/show_bug.cgi?id=101736
16519
16520         Reviewed by Kent Tamura.
16521
16522         Add @constructor where needed. Replacing /* with /** for annotations.
16523
16524         No new tests. No behavior change.
16525
16526         * Resources/pagepopups/calendarPicker.js:
16527         * Resources/pagepopups/pickerCommon.js:
16528         * Resources/pagepopups/suggestionPicker.js:
16529
16530 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16531
16532         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16533         https://bugs.webkit.org/show_bug.cgi?id=101656
16534
16535         Reviewed by Kenneth Rohde Christiansen.
16536
16537         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16538         smartly, but currently TiledBackingStore expects a contents rect is big enough
16539         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16540         is usually wrong expectation.
16541
16542         We must compute cover and keep rects using the visibleRect, instead of
16543         the rect intersecting the visibleRect with m_rect, because TBS can be
16544         used as a backing store of GraphicsLayer and the visible rect usually
16545         does not intersect with m_rect.
16546         In the below case, the intersecting rect is an empty.
16547
16548          +---------------+
16549          |               |
16550          |   m_rect      |
16551          |       +-------|-----------------------+
16552          |       | HERE  |  cover or keep        |
16553          +---------------+      rect             |
16554                  |         +---------+           |
16555                  |         | visible |           |
16556                  |         |  rect   |           |
16557                  |         +---------+           |
16558                  |                               |
16559                  |                               |
16560                  +-------------------------------+
16561
16562         We must create or keep the tiles in the HERE region. Currently in the
16563         case, we do not create or keep tiles on the HERE region. Moreover, in
16564         the case, we early return, which means we don't remove any tiles. It
16565         causes to waste heap and video memory.
16566
16567         This patch changes TiledBackingStore to manage tiles smartly for
16568         Coordinated Graphics.
16569
16570         Changing cache policy is not testable in layout tests.
16571
16572         * platform/graphics/TiledBackingStore.cpp:
16573         (WebCore::TiledBackingStore::visibleRect):
16574         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16575         (WebCore::TiledBackingStore::createTiles):
16576         (WebCore::TiledBackingStore::adjustForContentsRect):
16577         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16578         * platform/graphics/TiledBackingStore.h:
16579         (TiledBackingStore):
16580
16581 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16582
16583         Fix undefined variable in Week constructor for calendar picker
16584         https://bugs.webkit.org/show_bug.cgi?id=101734
16585
16586         Reviewed by Kent Tamura.
16587
16588         Closer compiler found an undefined variable in the Week constructor.
16589
16590         No new tests. This code isn't used.
16591
16592         * Resources/pagepopups/calendarPicker.js:
16593         (Week): Used wrong variable name.
16594
16595 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16596
16597         Web Inspector: render canvas log as a grid.
16598         https://bugs.webkit.org/show_bug.cgi?id=101732
16599
16600         Reviewed by Vsevolod Vlasov.
16601
16602         * English.lproj/localizedStrings.js:
16603         * inspector/front-end/CanvasProfileView.js:
16604         (WebInspector.CanvasProfileView):
16605         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16606         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16607         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16608         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16609         (WebInspector.CanvasLogGrid):
16610         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16611         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16612         * inspector/front-end/DataGrid.js:
16613         (WebInspector.DataGridNode.prototype.createCell):
16614         * inspector/front-end/canvasProfiler.css:
16615         (#canvas-replay-image-container):
16616
16617 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16618
16619         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16620         https://bugs.webkit.org/show_bug.cgi?id=101595
16621
16622         Reviewed by Simon Hausmann.
16623
16624         If the contextMenu is a null pointer treat it as empty, appendItem will later
16625         create it if necessary.
16626
16627         * page/ContextMenuController.cpp:
16628         (WebCore::ContextMenuController::addInspectElementItem):
16629
16630 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16631
16632         [EFL][WK2] Add support for custom cursors
16633         https://bugs.webkit.org/show_bug.cgi?id=101723
16634
16635         Reviewed by Kenneth Rohde Christiansen.
16636
16637         Add getEvasObject() virtual method to Image class and
16638         provide implementation for BitmapImage.
16639
16640         No new tests, no behavior change.
16641
16642         * platform/efl/CursorEfl.cpp:
16643         (WebCore::cursorString):
16644         * platform/graphics/BitmapImage.h:
16645         (BitmapImage):
16646         * platform/graphics/Image.h:
16647         (Image):
16648         (WebCore::Image::getEvasObject):
16649         * platform/graphics/efl/ImageEfl.cpp:
16650         (WebCore::BitmapImage::getEvasObject):
16651         (WebCore):
16652
16653 2012-11-09  Adam Barth  <abarth@webkit.org>
16654
16655         IndexedDB should use mostly ScriptWrappable DOM objects
16656         https://bugs.webkit.org/show_bug.cgi?id=101694
16657
16658         Reviewed by Kentaro Hara.
16659
16660         These object always have JavaScript wrappers, so we should store the
16661         wrappers inline to use less memory and be faster.
16662
16663         * Modules/indexeddb/IDBAny.h:
16664         * Modules/indexeddb/IDBCursor.h:
16665         * Modules/indexeddb/IDBDatabase.h:
16666         * Modules/indexeddb/IDBFactory.h:
16667         * Modules/indexeddb/IDBIndex.h:
16668         * Modules/indexeddb/IDBKey.h:
16669         * Modules/indexeddb/IDBKeyRange.h:
16670         * Modules/indexeddb/IDBObjectStore.h:
16671         * Modules/indexeddb/IDBRequest.h:
16672         * Modules/indexeddb/IDBTransaction.h:
16673
16674 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16675
16676         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16677         https://bugs.webkit.org/show_bug.cgi?id=101578
16678
16679         Reviewed by Yury Semikhatsky.
16680
16681         Added specific error message when request content was evicted from inspector cache.
16682         Replaced purge with evict in fields/methods names.
16683
16684         * inspector/InspectorResourceAgent.cpp:
16685         (WebCore::InspectorResourceAgent::getResponseBody):
16686         * inspector/NetworkResourcesData.cpp:
16687         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16688         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16689         (WebCore::NetworkResourcesData::setResourceContent):
16690         (WebCore::NetworkResourcesData::maybeAddResourceData):
16691         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16692         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16693         (WebCore::NetworkResourcesData::ensureFreeSpace):
16694         * inspector/NetworkResourcesData.h:
16695         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16696         (ResourceData):
16697
16698 2012-11-09  Kent Tamura  <tkent@chromium.org>
16699
16700         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16701         https://bugs.webkit.org/show_bug.cgi?id=101722
16702
16703         Reviewed by Hajime Morita.
16704
16705         Because the date/time input types are not textfields, we should not use
16706         RenderTextControlSingleLine, and don't need to create shadow trees for
16707         RenderTextControlSingleLine.
16708
16709         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16710
16711         * css/html.css:
16712         (input[type="date"]):
16713         It has menulist appeanrace by default, and should be a flexible box to
16714         center the inner text. 10em width is almost same as the default width of
16715         text fields.
16716         (input[type="datetime"]): Ditto.
16717         (input[type="datetime-local"]): Ditto.
16718         (input[type="month"]): Ditto.
16719         (input[type="time"]): Ditto.
16720         (input[type="week"]): Ditto.
16721         (input::-webkit-date-and-time-value):
16722         Added. A style for the inner text block.
16723         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16724         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16725         Don't create RenderTextControlSingleLine.
16726         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16727         Skip TextFieldInputType::updateInnerTextValue.
16728         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16729         Skip TextFieldInputType::forwardEvent.
16730         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16731         Just add one element to the shadow root.
16732         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16733         Sets a localized value to the inner text block.
16734         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16735         Calls updateAppearance if the value is updated.
16736         * html/BaseChooserOnlyDateAndTimeInputType.h:
16737         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16738         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16739         and setValue.
16740         * html/BaseDateAndTimeInputType.h:
16741         (WebCore): Add a FIXME comment.
16742         (BaseDateAndTimeInputType):
16743         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16744         * html/TextFieldInputType.h:
16745         (TextFieldInputType):
16746         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16747
16748 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16749
16750         Web Inspector: Clarify meaning of different urls in protocol.
16751         https://bugs.webkit.org/show_bug.cgi?id=101582
16752
16753         Reviewed by Yury Semikhatsky.
16754
16755         * inspector/Inspector.json:
16756
16757 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16758
16759         Month picker should select the current month when navigating while keeping selection position.
16760         https://bugs.webkit.org/show_bug.cgi?id=101724
16761
16762         Reviewed by Kent Tamura.
16763
16764         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16765
16766         No new tests. Test will be added in Bug 101556.
16767
16768         * Resources/pagepopups/calendarPicker.js:
16769         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16770         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16771         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16772
16773 2012-11-09  Alexei Filippov  <alph@chromium.org>
16774
16775         Web Inspector: Fix heap snapshots counted several times by NMI
16776         https://bugs.webkit.org/show_bug.cgi?id=101085
16777
16778         The fix moves snapshots size counting to V8PerIsolateData class. As long
16779         as it has one instance per isolate its reportMemoryUsage should be
16780         called once per isolate.
16781
16782         Reviewed by Yury Semikhatsky.
16783
16784         * bindings/v8/V8PerIsolateData.cpp:
16785         (WebCore::V8PerIsolateData::reportMemoryUsage):
16786         * inspector/InspectorProfilerAgent.cpp:
16787         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16788
16789 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16790
16791         Web Inspector: split SplitView into SplitView and SidebarView
16792         https://bugs.webkit.org/show_bug.cgi?id=101612
16793
16794         Reviewed by Vsevolod Vlasov.
16795
16796         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16797
16798         * WebCore.gypi:
16799         * WebCore.vcproj/WebCore.vcproj:
16800         * inspector/compile-front-end.py:
16801         * inspector/front-end/AuditsPanel.js:
16802         (WebInspector.AuditsPanel):
16803         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16804         (WebInspector.CSSNamedFlowCollectionsView):
16805         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16806         * inspector/front-end/ElementsPanel.js:
16807         * inspector/front-end/FileSystemView.js:
16808         (WebInspector.FileSystemView):
16809         * inspector/front-end/MemoryStatistics.js:
16810         (WebInspector.CounterUI):
16811         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16812         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16813         (WebInspector.MemoryStatistics.prototype.visible):
16814         (WebInspector.MemoryStatistics.prototype.show):
16815         (WebInspector.MemoryStatistics.prototype.hide):
16816         * inspector/front-end/NavigatorOverlayController.js:
16817         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16818         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16819         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16820         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16821         * inspector/front-end/NetworkPanel.js:
16822         * inspector/front-end/Panel.js:
16823         (WebInspector.Panel.prototype.createSidebarView):
16824         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16825         * inspector/front-end/ProfilesPanel.js:
16826         (WebInspector.ProfilesPanel):
16827         * inspector/front-end/ResourcesPanel.js:
16828         * inspector/front-end/ScriptsPanel.js:
16829         (WebInspector.ScriptsPanel):
16830         * inspector/front-end/SidebarView.js: Added.
16831         (WebInspector.SidebarView):
16832         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16833         (WebInspector.SidebarView.prototype.get mainElement):
16834         (WebInspector.SidebarView.prototype.get sidebarElement):
16835         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16836         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16837         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16838         (WebInspector.SidebarView.prototype.setSidebarWidth):
16839         (WebInspector.SidebarView.prototype.sidebarWidth):
16840         (WebInspector.SidebarView.prototype.onResize):
16841         (WebInspector.SidebarView.prototype.applyConstraints):
16842         (WebInspector.SidebarView.prototype.hideMainElement):
16843         (WebInspector.SidebarView.prototype.showMainElement):
16844         (WebInspector.SidebarView.prototype.hideSidebarElement):
16845         (WebInspector.SidebarView.prototype.showSidebarElement):
16846         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16847         * inspector/front-end/SplitView.js:
16848         (WebInspector.SplitView):
16849         (WebInspector.SplitView.prototype.firstElement):
16850         (WebInspector.SplitView.prototype.secondElement):
16851         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16852         (WebInspector.SplitView.prototype.resizerElement):
16853         (WebInspector.SplitView.prototype.showOnlyFirst):
16854         (WebInspector.SplitView.prototype.showOnlySecond):
16855         (WebInspector.SplitView.prototype._showOnly):
16856         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16857         (WebInspector.SplitView.prototype.showBoth):
16858         (WebInspector.SplitView.prototype.setResizable):
16859         (WebInspector.SplitView.prototype.setSplitOffset):
16860         (WebInspector.SplitView.prototype.splitOffset):
16861         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16862         (WebInspector.SplitView.prototype._startResizerDragging):
16863         * inspector/front-end/TimelinePanel.js:
16864         * inspector/front-end/WebKit.qrc:
16865         * inspector/front-end/inspector.html:
16866         * inspector/front-end/splitView.css:
16867
16868 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16869
16870         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16871         https://bugs.webkit.org/show_bug.cgi?id=101591
16872
16873         Reviewed by Vsevolod Vlasov.
16874
16875         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16876
16877         * inspector/front-end/DefaultTextEditor.js:
16878         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16879         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16880         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16881         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16882
16883 2012-11-09  Dan Carney  <dcarney@google.com>
16884
16885         [V8] Main world should have one DOMDataStore
16886         https://bugs.webkit.org/show_bug.cgi?id=101470
16887
16888         Reviewed by Kentaro Hara.
16889
16890         The main world DOMWrapperWorld held onto a DOMDataStore that should
16891         never be used, as there is a static one optimized for speed in
16892         DOMDataStore.
16893
16894         No new tests. No change in functionality.
16895
16896         * bindings/v8/DOMDataStore.cpp:
16897         (WebCore::DOMDataStore::current):
16898         * bindings/v8/DOMWrapperWorld.h:
16899         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16900         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16901         * bindings/v8/V8DOMWrapper.h:
16902         (WebCore::V8DOMWrapper::getCachedWrapper):
16903
16904 2012-11-09  Alexei Filippov  <alph@chromium.org>
16905
16906         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16907         https://bugs.webkit.org/show_bug.cgi?id=101611
16908
16909         Reviewed by Yury Semikhatsky.
16910
16911         Keys navigation cause populate message sent to the node. The node should
16912         not react on populate messages but the first one.
16913
16914         * inspector/front-end/NativeMemorySnapshotView.js:
16915
16916 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16917
16918         Web Inspector: Timeline: "Send Request" events are shown out of order.
16919         https://bugs.webkit.org/show_bug.cgi?id=101544
16920
16921         Reviewed by Yury Semikhatsky.
16922
16923         Solution: replace obsolete out-of-order record pushing with frontend
16924         record reparenting.
16925
16926         * inspector/InspectorTimelineAgent.cpp:
16927         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16928         direct record pushing with standard appendRecord invokation.
16929         * inspector/front-end/TimelinePresentationModel.js:
16930         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16931         Made "Send Request" records top-level if gluing is on.
16932
16933 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16934
16935         Unreviewed, rolling out r134010.
16936         http://trac.webkit.org/changeset/134010
16937         https://bugs.webkit.org/show_bug.cgi?id=101716
16938
16939         Broke the chromium windows build. (Requested by noel_ on
16940         #webkit).
16941
16942         * Modules/indexeddb/IDBAny.cpp:
16943         * Modules/indexeddb/IDBCallbacks.h:
16944         * Modules/indexeddb/IDBDatabase.cpp:
16945         (WebCore::IDBDatabase::createObjectStore):
16946         (WebCore::IDBDatabase::deleteObjectStore):
16947         (WebCore::IDBDatabase::transaction):
16948         * Modules/indexeddb/IDBDatabase.h:
16949         (IDBDatabase):
16950         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16951         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16952         (WebCore):
16953         (WebCore::IDBDatabaseBackendImpl::setVersion):
16954         (WebCore::IDBDatabaseBackendImpl::transaction):
16955         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16956         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16957         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16958         (IDBDatabaseBackendImpl):
16959         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16960         (WebCore):
16961         (IDBDatabaseBackendInterface):
16962         * Modules/indexeddb/IDBMetadata.h:
16963         (WebCore::IDBObjectStoreMetadata::containsIndex):
16964         (WebCore::IDBDatabaseMetadata::findObjectStore):
16965         (IDBDatabaseMetadata):
16966         (WebCore::IDBDatabaseMetadata::containsObjectStore):
16967         * Modules/indexeddb/IDBObjectStore.cpp:
16968         (WebCore::IDBObjectStore::put):
16969         (WebCore):
16970         (WebCore::IDBObjectStore::createIndex):
16971         (WebCore::IDBObjectStore::index):
16972         (WebCore::IDBObjectStore::deleteIndex):
16973         * Modules/indexeddb/IDBObjectStore.h:
16974         (WebCore::IDBObjectStore::openCursor):
16975         (IDBObjectStore):
16976         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16977         (WebCore::IDBObjectStoreBackendImpl::put):
16978         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
16979         (WebCore):
16980         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
16981         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
16982         (WebCore::IDBObjectStoreBackendImpl::index):
16983         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
16984         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
16985         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
16986         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16987         (IDBObjectStoreBackendImpl):
16988         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16989         (WebCore):
16990         * Modules/indexeddb/IDBTransaction.cpp:
16991         (WebCore::IDBTransaction::objectStore):
16992         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
16993         (WebCore::IDBTransactionBackendImpl::objectStore):
16994         (WebCore):
16995         * Modules/indexeddb/IDBTransactionBackendImpl.h:
16996         (IDBTransactionBackendImpl):
16997         * Modules/indexeddb/IDBTransactionBackendInterface.h:
16998
16999 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
17000
17001         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
17002         https://bugs.webkit.org/show_bug.cgi?id=101570
17003
17004         Reviewed by Gustavo Noronha Silva.
17005
17006         Expose a new method to check whether a vector of loaded languages is empty.
17007         WK2-EFL needs it to set the default language (if the client didn't set any) when
17008         spelling setting is being enabled. This change makes it more convenient to check
17009         whether the dictionaries vector is empty.
17010
17011         No new tests, no behavior change.
17012
17013         * platform/text/enchant/TextCheckerEnchant.cpp:
17014         (TextCheckerEnchant::checkSpellingOfString):
17015         (TextCheckerEnchant::getGuessesForWord):
17016         (TextCheckerEnchant::loadedSpellCheckingLanguages):
17017         A newly exposed method is used internally too.
17018
17019         * platform/text/enchant/TextCheckerEnchant.h:
17020         (WebCore::TextCheckerEnchant::hasDictionary):
17021         Add an inline hasDictionary() method.
17022
17023 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17024
17025         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
17026         https://bugs.webkit.org/show_bug.cgi?id=101702
17027
17028         Reviewed by Hajime Morita.
17029
17030         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
17031         setPseudo()/pseudo() instead.
17032
17033         No new tests, simple refactoring.
17034
17035         * html/track/TextTrackCue.cpp:
17036         (WebCore::TextTrackCueBox::TextTrackCueBox):
17037         * html/track/TextTrackCue.h:
17038         (TextTrackCueBox):
17039
17040 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
17041
17042         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
17043         https://bugs.webkit.org/show_bug.cgi?id=18153
17044
17045         Reviewed by Beth Dakin.
17046
17047         Preferred logical width is computed incorrectly for fixed layout tables
17048         with 100% percent width, in standards mode.
17049
17050         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
17051         the ultimate width of the table is the greater of the value of the
17052         'width' property for the table elements and the sum of the column
17053         widths.
17054
17055         For our specific scenario we have a fixed layout table with 100% width
17056         consisting of columns with fixed widths, the sum of which is less than
17057         the specified width of the table (i.e. 100% of the containing block).
17058         Even then the applied width is the cummulative of the width of the
17059         columns.
17060
17061         This happens because of the quirks mode check added in
17062         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
17063         setting of maxWidth to our fixed layout table with percent width, and
17064         which perhaps is not required anymore.
17065
17066         Test: fast/table/fixed-table-layout/table-with-percent-width.html
17067
17068         * rendering/FixedTableLayout.cpp:
17069         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
17070         Removed the quirks mode check.
17071
17072 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17073
17074         Unreviewed, rolling out r134004.
17075         http://trac.webkit.org/changeset/134004
17076         https://bugs.webkit.org/show_bug.cgi?id=101713
17077
17078         multiple crashes (Requested by hayato on #webkit).
17079
17080         * rendering/RenderThemeMac.mm:
17081         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17082         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17083         (WebCore::RenderThemeMac::paintMediaMuteButton):
17084         (WebCore::RenderThemeMac::paintMediaPlayButton):
17085         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17086         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17087         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17088         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17089         (WebCore::RenderThemeMac::paintMediaRewindButton):
17090         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17091         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17092         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17093         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17094         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17095         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17096         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17097         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17098         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17099         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17100
17101 2012-11-08  Jan Keromnes  <janx@linux.com>
17102
17103         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17104         https://bugs.webkit.org/show_bug.cgi?id=101607
17105
17106         Reviewed by Vsevolod Vlasov.
17107
17108         API changes completing migration to v3.
17109
17110         * inspector/front-end/CodeMirrorTextEditor.js:
17111         (WebInspector.CodeMirrorTextEditor):
17112         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17113         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17114
17115 2012-11-08  Alexei Filippov  <alph@chromium.org>
17116
17117         Web Inspector: make "Other" bar color darker in NMI snapshot.
17118         https://bugs.webkit.org/show_bug.cgi?id=101602
17119
17120         Reviewed by Vsevolod Vlasov.
17121
17122         * inspector/front-end/NativeMemorySnapshotView.js:
17123         (WebInspector.MemoryBlockViewProperties._initialize):
17124
17125 2012-11-08  Alec Flett  <alecflett@chromium.org>
17126
17127         IndexedDB: switch frontend to use int64_t-based references
17128         https://bugs.webkit.org/show_bug.cgi?id=100426
17129
17130         Reviewed by Tony Chang.
17131
17132         Remove String-based objectStore/index references, obsoleted by
17133         https://bugs.webkit.org/show_bug.cgi?id=100425.
17134
17135         No new tests as this is the second half of a refactor.
17136
17137         * Modules/indexeddb/IDBCallbacks.h:
17138         * Modules/indexeddb/IDBDatabase.cpp:
17139         (WebCore::IDBDatabase::deleteObjectStore):
17140         (WebCore::IDBDatabase::transaction):
17141         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17142         (WebCore::IDBDatabaseBackendImpl::setVersion):
17143         (WebCore::IDBDatabaseBackendImpl::transaction):
17144         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17145         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17146         (IDBDatabaseBackendImpl):
17147         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17148         (IDBDatabaseBackendInterface):
17149         * Modules/indexeddb/IDBMetadata.h:
17150         (WebCore::IDBObjectStoreMetadata::findIndex):
17151         (IDBObjectStoreMetadata):
17152         (WebCore::IDBObjectStoreMetadata::containsIndex):
17153         * Modules/indexeddb/IDBObjectStore.cpp:
17154         (WebCore::IDBObjectStore::put):
17155         (WebCore):
17156         (WebCore::IDBObjectStore::index):
17157         (WebCore::IDBObjectStore::deleteIndex):
17158         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17159         (WebCore::IDBObjectStoreBackendImpl::put):
17160         (WebCore):
17161         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17162         (IDBObjectStoreBackendImpl):
17163         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17164         * inspector/Inspector-1.0.json:
17165         * inspector/Inspector.json:
17166         * inspector/InspectorIndexedDBAgent.cpp:
17167         (WebCore):
17168         (WebCore::InspectorIndexedDBAgent::requestData):
17169         * inspector/InspectorIndexedDBAgent.h:
17170         (InspectorIndexedDBAgent):
17171
17172 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17173
17174         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17175         https://bugs.webkit.org/show_bug.cgi?id=101692
17176
17177         Reviewed by Dimitri Glazkov.
17178
17179         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17180
17181         No new tests, simple refactoring.
17182
17183         * css/RuleFeature.cpp:
17184         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17185         (WebCore):
17186         * css/RuleFeature.h:
17187         (WebCore):
17188         (RuleFeatureSet):
17189         * css/RuleSet.cpp:
17190         (WebCore::collectFeaturesFromRuleData):
17191
17192 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17193
17194         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17195         https://bugs.webkit.org/show_bug.cgi?id=101634
17196
17197         Reviewed by Adam Barth.
17198
17199         No new tests, just disabling unused code in Chromium port.
17200
17201         * rendering/RenderThemeMac.mm:
17202         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17203         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17204         (WebCore::RenderThemeMac::paintMediaMuteButton):
17205         (WebCore::RenderThemeMac::paintMediaPlayButton):
17206         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17207         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17208         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17209         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17210         (WebCore::RenderThemeMac::paintMediaRewindButton):
17211         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17212         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17213         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17214         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17215         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17216         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17217         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17218         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17219         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17220         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17221
17222 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17223
17224         Enable calendar picker for input types week/month
17225         https://bugs.webkit.org/show_bug.cgi?id=101553
17226
17227         Reviewed by Kent Tamura.
17228
17229         Enabling calendar picker for <input type=week/month>
17230
17231         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17232
17233         * rendering/RenderThemeChromiumCommon.cpp:
17234         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17235
17236 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17237
17238         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17239         https://bugs.webkit.org/show_bug.cgi?id=101681
17240
17241         Reviewed by George Staikos.
17242
17243         Since the platform player in BlackBerry disallows resources that come from different origins,
17244         so it's safe to directly returns true here.
17245
17246         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17247         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17248
17249 2012-11-08  Mark Lam  <mark.lam@apple.com>
17250
17251         Renamed ...InlineMethods.h files to ...Inlines.h.
17252         https://bugs.webkit.org/show_bug.cgi?id=101145.
17253
17254         Reviewed by Geoffrey Garen.
17255
17256         This is only a refactoring effort to rename the files. There are no
17257         functionality changes.
17258
17259         No new tests.
17260
17261         * GNUmakefile.list.am:
17262         * Target.pri:
17263         * WebCore.gypi:
17264         * WebCore.vcproj/WebCore.vcproj:
17265         * WebCore.xcodeproj/project.pbxproj:
17266         * html/parser/HTMLEntityParser.cpp:
17267         * html/parser/HTMLTokenizer.cpp:
17268         * html/track/WebVTTTokenizer.cpp:
17269         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17270         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17271         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17272         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17273         * xml/parser/XMLCharacterReferenceParser.cpp:
17274         * xml/parser/XMLTokenizer.cpp:
17275
17276 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17277
17278         Unreviewed, rolling out r133984.
17279         http://trac.webkit.org/changeset/133984
17280         https://bugs.webkit.org/show_bug.cgi?id=101684
17281
17282         windows build error. (Requested by hayato on #webkit).
17283
17284         * Modules/indexeddb/IDBCallbacks.h:
17285         * Modules/indexeddb/IDBDatabase.cpp:
17286         (WebCore::IDBDatabase::createObjectStore):
17287         (WebCore::IDBDatabase::deleteObjectStore):
17288         (WebCore::IDBDatabase::transaction):
17289         * Modules/indexeddb/IDBDatabase.h:
17290         (IDBDatabase):
17291         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17292         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17293         (WebCore):
17294         (WebCore::IDBDatabaseBackendImpl::setVersion):
17295         (WebCore::IDBDatabaseBackendImpl::transaction):
17296         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17297         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17298         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17299         (IDBDatabaseBackendImpl):
17300         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17301         (IDBDatabaseBackendInterface):
17302         * Modules/indexeddb/IDBMetadata.h:
17303         (WebCore::IDBObjectStoreMetadata::containsIndex):
17304         (WebCore::IDBDatabaseMetadata::findObjectStore):
17305         (IDBDatabaseMetadata):
17306         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17307         * Modules/indexeddb/IDBObjectStore.cpp:
17308         (WebCore::IDBObjectStore::put):
17309         (WebCore):
17310         (WebCore::IDBObjectStore::createIndex):
17311         (WebCore::IDBObjectStore::index):
17312         (WebCore::IDBObjectStore::deleteIndex):
17313         * Modules/indexeddb/IDBObjectStore.h:
17314         (WebCore::IDBObjectStore::openCursor):
17315         (IDBObjectStore):
17316         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17317         (WebCore::IDBObjectStoreBackendImpl::put):
17318         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17319         (WebCore):
17320         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17321         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17322         (WebCore::IDBObjectStoreBackendImpl::index):
17323         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17324         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17325         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17326         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17327         (IDBObjectStoreBackendImpl):
17328         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17329         * Modules/indexeddb/IDBTransaction.cpp:
17330         (WebCore::IDBTransaction::objectStore):
17331         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17332         (WebCore::IDBTransactionBackendImpl::objectStore):
17333         (WebCore):
17334         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17335         (IDBTransactionBackendImpl):
17336         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17337
17338 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17339
17340         HTMLContentElement should preserve parsed CSSSelectorList
17341         https://bugs.webkit.org/show_bug.cgi?id=101543
17342
17343         Reviewed by Dimitri Glazkov.
17344
17345         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17346
17347         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17348         CSSSelectorList, we can reduce distribution time.
17349
17350         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17351         parse and validate it again.
17352
17353         No new tests, covered by exising tests.
17354
17355         * html/shadow/ContentSelectorQuery.cpp:
17356         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17357         if it's already parsed.
17358         (WebCore::ContentSelectorQuery::matches):
17359         * html/shadow/ContentSelectorQuery.h:
17360         (ContentSelectorQuery):
17361         * html/shadow/HTMLContentElement.cpp:
17362         (WebCore::HTMLContentElement::HTMLContentElement):
17363         (WebCore::HTMLContentElement::isSelectValid):
17364         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17365         we parse and validate it.
17366         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17367         to parse select attrite again.
17368         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17369         (WebCore):
17370         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17371         (WebCore::HTMLContentElement::validateSelect):
17372         * html/shadow/HTMLContentElement.h:
17373         (HTMLContentElement):
17374         (WebCore::HTMLContentElement::setSelect):
17375         (WebCore):
17376         (WebCore::HTMLContentElement::selectorList):
17377         * html/shadow/HTMLShadowElement.cpp:
17378         (WebCore::HTMLShadowElement::emptySelectorList):
17379         (WebCore):
17380         * html/shadow/HTMLShadowElement.h:
17381         (HTMLShadowElement):
17382         (WebCore::HTMLShadowElement::selectorList):
17383         * html/shadow/InsertionPoint.h:
17384         (InsertionPoint):
17385
17386 2012-11-08  Alec Flett  <alecflett@chromium.org>
17387
17388         IndexedDB: switch frontend to use int64_t-based references
17389         https://bugs.webkit.org/show_bug.cgi?id=100426
17390
17391         Reviewed by Tony Chang.
17392
17393         Remove String-based objectStore/index references, obsoleted by
17394         https://bugs.webkit.org/show_bug.cgi?id=100425.
17395
17396         No new tests as this is the second half of a refactor.
17397
17398         * Modules/indexeddb/IDBCallbacks.h:
17399         * Modules/indexeddb/IDBDatabase.cpp:
17400         (WebCore::IDBDatabase::deleteObjectStore):
17401         (WebCore::IDBDatabase::transaction):
17402         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17403         (WebCore::IDBDatabaseBackendImpl::setVersion):
17404         (WebCore::IDBDatabaseBackendImpl::transaction):
17405         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17406         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17407         (IDBDatabaseBackendImpl):
17408         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17409         (IDBDatabaseBackendInterface):
17410         * Modules/indexeddb/IDBMetadata.h:
17411         (WebCore::IDBObjectStoreMetadata::findIndex):
17412         (IDBObjectStoreMetadata):
17413         (WebCore::IDBObjectStoreMetadata::containsIndex):
17414         * Modules/indexeddb/IDBObjectStore.cpp:
17415         (WebCore::IDBObjectStore::put):
17416         (WebCore):
17417         (WebCore::IDBObjectStore::index):
17418         (WebCore::IDBObjectStore::deleteIndex):
17419         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17420         (WebCore::IDBObjectStoreBackendImpl::put):
17421         (WebCore):
17422         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17423         (IDBObjectStoreBackendImpl):
17424         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17425         * inspector/Inspector-1.0.json:
17426         * inspector/Inspector.json:
17427         * inspector/InspectorIndexedDBAgent.cpp:
17428         (WebCore):
17429         (WebCore::InspectorIndexedDBAgent::requestData):
17430         * inspector/InspectorIndexedDBAgent.h:
17431         (InspectorIndexedDBAgent):
17432
17433 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17434
17435         [Chromium] Arabic digits should appear left-to-right
17436         https://bugs.webkit.org/show_bug.cgi?id=101440
17437
17438         Reviewed by Tony Chang.
17439
17440         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17441         direction should be overridden. Leave direction setting to HarfBuzz when
17442         WebKit is calculating widths because the direction is LTR by default while
17443         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17444         appropriate direction.
17445
17446         Test: fast/text/international/arabic-digits.html
17447
17448         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17449         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17450         Add m_script. This holds the script of the run.
17451         (WebCore::HarfBuzzShaper::shape):
17452         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17453         direction should be overridden.
17454         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17455         Set script of HarfBuzzRuns.
17456         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17457         Add an argument that indicates it should set direction.
17458         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17459         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17460         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17461         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17462         (HarfBuzzRun):
17463         (HarfBuzzShaper):
17464
17465 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17466
17467         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17468         https://bugs.webkit.org/show_bug.cgi?id=101658
17469
17470         Reviewed by Noam Rosenthal.
17471
17472         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17473         GraphicsLayer::platformLayer(), so we remove it.
17474
17475         No new tests, this is just a refactor.
17476
17477         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17478         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17479         * platform/graphics/texmap/TextureMapperLayer.cpp:
17480         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17481
17482 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17483
17484         Improve the use of AtomicString with literals
17485         https://bugs.webkit.org/show_bug.cgi?id=101298
17486
17487         Reviewed by Darin Adler.
17488
17489         Fix a bunch of cases of AtomicString with literals:
17490         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17491         -Use the ConstructFromLiteral constructor whenever it makes sense.
17492         -Make "x-frame-options" static instead of creating it for each response.
17493         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17494          not an AtomicString.
17495
17496         * Modules/battery/BatteryController.cpp:
17497         (WebCore::BatteryController::supplementName):
17498         * Modules/battery/NavigatorBattery.cpp:
17499         (WebCore::NavigatorBattery::from):
17500         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17501         (WebCore::DraggedIsolatedFileSystem::supplementName):
17502         * Modules/gamepad/NavigatorGamepad.cpp:
17503         (WebCore::NavigatorGamepad::from):
17504         * Modules/geolocation/GeolocationController.cpp:
17505         (WebCore::GeolocationController::supplementName):
17506         * Modules/geolocation/NavigatorGeolocation.cpp:
17507         (WebCore::NavigatorGeolocation::from):
17508         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17509         (WebCore::DOMWindowIndexedDatabase::from):
17510         * Modules/indexeddb/IDBCursor.cpp:
17511         (WebCore::IDBCursor::directionNext):
17512         (WebCore::IDBCursor::directionNextUnique):
17513         (WebCore::IDBCursor::directionPrev):
17514         (WebCore::IDBCursor::directionPrevUnique):
17515         * Modules/indexeddb/IDBRequest.cpp:
17516         (WebCore::IDBRequest::readyState):
17517         * Modules/indexeddb/IDBTransaction.cpp:
17518         (WebCore::IDBTransaction::modeReadOnly):
17519         (WebCore::IDBTransaction::modeReadWrite):
17520         (WebCore::IDBTransaction::modeVersionChange):
17521         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17522         (WebCore::IDBTransaction::modeReadWriteLegacy):
17523         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17524         (WebCore::PageGroupIndexedDatabase::from):
17525         * Modules/intents/DOMWindowIntents.cpp:
17526         (WebCore::DOMWindowIntents::from):
17527         * Modules/mediastream/UserMediaController.cpp:
17528         (WebCore::UserMediaController::supplementName):
17529         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17530         (WebCore::NavigatorContentUtils::supplementName):
17531         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17532         (WebCore::NavigatorNetworkInfoConnection::from):
17533         * Modules/networkinfo/NetworkInfoController.cpp:
17534         (WebCore::NetworkInfoController::supplementName):
17535         * Modules/notifications/DOMWindowNotifications.cpp:
17536         (WebCore::DOMWindowNotifications::from):
17537         * Modules/notifications/NotificationController.cpp:
17538         (WebCore::NotificationController::supplementName):
17539         * Modules/quota/DOMWindowQuota.cpp:
17540         (WebCore::DOMWindowQuota::from):
17541         * Modules/speech/SpeechRecognitionController.cpp:
17542         (WebCore::SpeechRecognitionController::supplementName):
17543         * Modules/vibration/Vibration.cpp:
17544         (WebCore::Vibration::supplementName):
17545         * accessibility/AccessibilityObject.cpp:
17546         (WebCore::AccessibilityObject::invalidStatus):
17547         * accessibility/AccessibilityRenderObject.cpp:
17548         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17549         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17550         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17551         (WebCore::V8DOMWindow::namedSecurityCheck):
17552         * bindings/v8/custom/V8NodeListCustom.cpp:
17553         (WebCore::V8NodeList::namedPropertyGetter):
17554         * dom/ContextFeatures.cpp:
17555         (WebCore::ContextFeatures::supplementName):
17556         * dom/DeviceMotionController.cpp:
17557         (WebCore::DeviceMotionController::supplementName):
17558         * dom/DeviceOrientationController.cpp:
17559         (WebCore::DeviceOrientationController::supplementName):
17560         * dom/Element.cpp:
17561         (WebCore::Element::webkitRegionOverset):
17562         * dom/MutationRecord.cpp:
17563         * html/FileInputType.cpp:
17564         (WebCore::UploadButtonElement::shadowPseudoId):
17565         * html/FormController.cpp:
17566         (WebCore::SavedFormState::getReferencedFilePaths):
17567         (WebCore::FormKeyGenerator::formKey):
17568         * html/HTMLButtonElement.cpp:
17569         (WebCore::HTMLButtonElement::formControlType):
17570         * html/HTMLDetailsElement.cpp:
17571         (WebCore::summaryQuerySelector):
17572         * html/HTMLFieldSetElement.cpp:
17573         (WebCore::HTMLFieldSetElement::formControlType):
17574         * html/HTMLKeygenElement.cpp:
17575         (WebCore::KeygenSelectElement::shadowPseudoId):
17576         (WebCore::HTMLKeygenElement::formControlType):
17577         * html/HTMLOptGroupElement.cpp:
17578         (WebCore::HTMLOptGroupElement::formControlType):
17579         * html/HTMLOutputElement.cpp:
17580         (WebCore::HTMLOutputElement::formControlType):
17581         * html/HTMLSelectElement.cpp:
17582         (WebCore::HTMLSelectElement::formControlType):
17583         * html/HTMLTextAreaElement.cpp:
17584         (WebCore::HTMLTextAreaElement::formControlType):
17585         * html/HTMLTextFormControlElement.cpp:
17586         (WebCore::directionString):
17587         * html/shadow/DateTimeEditElement.cpp:
17588         (WebCore::DateTimeEditElement::DateTimeEditElement):
17589         * html/shadow/DateTimeFieldElements.cpp:
17590         (WebCore::DateTimeAMPMFieldElement::create):
17591         (WebCore::DateTimeDayFieldElement::create):
17592         (WebCore::DateTimeHourFieldElement::create):
17593         (WebCore::DateTimeMillisecondFieldElement::create):
17594         (WebCore::DateTimeMinuteFieldElement::create):
17595         (WebCore::DateTimeMonthFieldElement::create):
17596         (WebCore::DateTimeSecondFieldElement::create):
17597         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17598         (WebCore::DateTimeWeekFieldElement::create):
17599         (WebCore::DateTimeYearFieldElement::create):
17600         * html/shadow/DetailsMarkerControl.cpp:
17601         (WebCore::DetailsMarkerControl::shadowPseudoId):
17602         * html/shadow/ImageInnerElement.cpp:
17603         (WebCore::ImageInnerElement::shadowPseudoId):
17604         * html/shadow/MediaControlElements.cpp:
17605         (WebCore::MediaControlPanelElement::shadowPseudoId):
17606         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17607         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17608         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17609         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17610         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17611         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17612         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17613         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17614         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17615         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17616         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17617         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17618         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17619         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17620         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17621         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17622         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17623         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17624         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17625         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17626         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17627         * html/shadow/MediaControlRootElement.cpp:
17628         (WebCore::MediaControlRootElement::shadowPseudoId):
17629         * html/shadow/MediaControlRootElementChromium.cpp:
17630         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17631         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17632         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17633         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17634         * html/shadow/MeterShadowElement.cpp:
17635         (WebCore::MeterInnerElement::shadowPseudoId):
17636         (WebCore::MeterBarElement::shadowPseudoId):
17637         (WebCore::MeterValueElement::shadowPseudoId):
17638         * html/shadow/ProgressShadowElement.cpp:
17639         (WebCore::ProgressInnerElement::shadowPseudoId):
17640         (WebCore::ProgressBarElement::shadowPseudoId):
17641         (WebCore::ProgressValueElement::shadowPseudoId):
17642         * html/shadow/SliderThumbElement.cpp:
17643         (WebCore::sliderThumbShadowPseudoId):
17644         (WebCore::mediaSliderThumbShadowPseudoId):
17645         (WebCore::SliderContainerElement::shadowPseudoId):
17646         * html/shadow/SpinButtonElement.cpp:
17647         (WebCore::SpinButtonElement::shadowPseudoId):
17648         * html/shadow/TextControlInnerElements.cpp:
17649         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17650         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17651         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17652         * html/track/TextTrackCue.cpp:
17653         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17654         * loader/CrossOriginAccessControl.cpp:
17655         (WebCore::passesAccessControlCheck):
17656         * loader/MainResourceLoader.cpp:
17657         (WebCore::MainResourceLoader::didReceiveResponse):
17658         * loader/PrerendererClient.cpp:
17659         (WebCore::PrerendererClient::supplementName):
17660         * loader/cache/CachedResource.cpp:
17661         (WebCore::CachedResource::updateResponseAfterRevalidation):
17662         * page/DOMWindowPagePopup.cpp:
17663         (WebCore::DOMWindowPagePopup::supplementName):
17664         * page/EventHandler.cpp:
17665         (WebCore::EventHandler::handlePasteGlobalSelection):
17666         (WebCore::focusDirectionForKey):
17667         * page/SpeechInput.cpp:
17668         (WebCore::SpeechInput::supplementName):
17669         * page/animation/CompositeAnimation.cpp:
17670         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17671         * platform/graphics/FontCache.cpp:
17672         (WebCore::alternateFamilyName):
17673         * platform/graphics/MediaPlayer.cpp:
17674         (WebCore::applicationOctetStream):
17675         (WebCore::textPlain):
17676         (WebCore::codecs):
17677         * platform/graphics/chromium/FontCacheAndroid.cpp:
17678         (WebCore::FontCache::getLastResortFallbackFont):
17679         * platform/graphics/filters/SourceAlpha.cpp:
17680         (WebCore::SourceAlpha::effectName):
17681         * platform/graphics/filters/SourceGraphic.cpp:
17682         (WebCore::SourceGraphic::effectName):
17683         * platform/graphics/mac/FontCacheMac.mm:
17684         (WebCore::FontCache::getSimilarFontPlatformData):
17685         (WebCore::FontCache::getLastResortFallbackFont):
17686         * platform/graphics/skia/FontCacheSkia.cpp:
17687         (WebCore::FontCache::getLastResortFallbackFont):
17688         * platform/graphics/win/FontCacheWin.cpp:
17689         (WebCore::FontCache::getLastResortFallbackFont):
17690         * platform/graphics/wx/FontCacheWx.cpp:
17691         (WebCore::FontCache::getSimilarFontPlatformData):
17692         * platform/network/ResourceResponseBase.cpp:
17693         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17694         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17695         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17696         (WebCore::ResourceResponseBase::date):
17697         (WebCore::ResourceResponseBase::age):
17698         (WebCore::ResourceResponseBase::expires):
17699         (WebCore::ResourceResponseBase::lastModified):
17700         (WebCore::ResourceResponseBase::isAttachment):
17701         * rendering/RenderTextControlMultiLine.cpp:
17702         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17703         * rendering/RenderTextControlSingleLine.cpp:
17704         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17705         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17706         * svg/SVGAnimateColorElement.cpp:
17707         (WebCore::attributeValueIsCurrentColor):
17708         * svg/SVGAnimateMotionElement.cpp:
17709         (WebCore::SVGAnimateMotionElement::rotateMode):
17710         * svg/SVGAnimationElement.cpp:
17711         (WebCore::SVGAnimationElement::setCalcMode):
17712         (WebCore::SVGAnimationElement::setAttributeType):
17713         (WebCore::SVGAnimationElement::isAdditive):
17714         (WebCore::SVGAnimationElement::isAccumulated):
17715         (WebCore::inheritsFromProperty):
17716         * svg/SVGFEConvolveMatrixElement.cpp:
17717         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17718         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17719         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17720         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17721         * svg/SVGFEDiffuseLightingElement.cpp:
17722         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17723         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17724         * svg/SVGFEDropShadowElement.cpp:
17725         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17726         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17727         * svg/SVGFEGaussianBlurElement.cpp:
17728         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17729         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17730         * svg/SVGFEMorphologyElement.cpp:
17731         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17732         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17733         * svg/SVGFESpecularLightingElement.cpp:
17734         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17735         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17736         * svg/SVGFETurbulenceElement.cpp:
17737         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17738         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17739         * svg/SVGFilterElement.cpp:
17740         (WebCore::SVGFilterElement::filterResXIdentifier):
17741         (WebCore::SVGFilterElement::filterResYIdentifier):
17742         * svg/SVGLangSpace.cpp:
17743         (WebCore::SVGLangSpace::xmlspace):
17744         (WebCore::SVGLangSpace::addSupportedAttributes):
17745         * svg/SVGMarkerElement.cpp:
17746         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17747         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17748         (WebCore::SVGMarkerElement::synchronizeOrientType):
17749         * svg/SVGSVGElement.cpp:
17750         (WebCore::SVGSVGElement::contentScriptType):
17751         (WebCore::SVGSVGElement::contentStyleType):
17752         * svg/SVGStyleElement.cpp:
17753         (WebCore::SVGStyleElement::type):
17754         (WebCore::SVGStyleElement::media):
17755         * svg/SVGTextContentElement.cpp:
17756         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17757         * svg/SVGViewSpec.cpp:
17758         (WebCore::SVGViewSpec::viewBoxIdentifier):
17759         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17760         (WebCore::SVGViewSpec::transformIdentifier):
17761         * svg/animation/SVGSMILElement.cpp:
17762         (WebCore::SVGSMILElement::parseClockValue):
17763         (WebCore::SVGSMILElement::restart):
17764         (WebCore::SVGSMILElement::fill):
17765         (WebCore::SVGSMILElement::repeatCount):
17766         * testing/InternalSettings.cpp:
17767         (WebCore::InternalSettings::from):
17768         * xml/parser/XMLTreeBuilder.cpp:
17769         (WebCore::XMLTreeBuilder::processDOCTYPE):
17770         (WebCore::XMLTreeBuilder::processXMLEntity):
17771
17772 2012-11-08  Beth Dakin  <bdakin@apple.com>
17773
17774         https://bugs.webkit.org/show_bug.cgi?id=101644
17775         Fixed header on Facebook news feed becomes detached from top of 
17776         viewport after rubber band scrolling
17777         -and corresponding-
17778         <rdar://problem/12651944>
17779
17780         Reviewed by Simon Fraser.
17781
17782         There is code to handle this for non-threaded scrolling on FrameView. 
17783         This patch moves most of that code into a convenience function on 
17784         ScrollingCoordinator.
17785
17786         Have FrameView::scrollOffsetForFixedPosition() call 
17787         WebCore::scrollOffsetForFixedPosition() with all the right 
17788         parameters.
17789         * page/FrameView.cpp:
17790         (WebCore::FrameView::scrollOffsetForFixedPosition):
17791
17792         Here's where all the math happens.
17793         * page/scrolling/ScrollingCoordinator.cpp:
17794         (WebCore::fixedPositionScrollOffset):
17795         (WebCore::scrollOffsetForFixedPosition):
17796
17797         The viewportRect in these three places needs to have the 
17798         adjusted-for-fixed offset.
17799         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17800         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17801         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17802         * rendering/RenderLayerCompositor.cpp:
17803         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17804
17805 2012-11-08  Alpha Lam  <hclam@chromium.org>
17806
17807         [chromium] Deferred image decoding fails with image orientation
17808         https://bugs.webkit.org/show_bug.cgi?id=101648
17809
17810         Reviewed by Stephen White.
17811
17812         When an image is deferred save the orientation state. Once this state
17813         is cached it can be used to reply future queries since this state is
17814         static.
17815
17816         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17817
17818         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17819         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17820         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17821         (WebCore::DeferredImageDecoder::orientation):
17822         * platform/graphics/chromium/DeferredImageDecoder.h:
17823         (DeferredImageDecoder):
17824
17825 2012-11-08  Andreas Kling  <kling@webkit.org>
17826
17827         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17828         <http://webkit.org/b/101657>
17829
17830         Reviewed by Anders Carlsson.
17831
17832         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17833         as we know it won't grow after that.
17834
17835         520kB progression on Membuster3.
17836
17837         * loader/DocumentLoader.cpp:
17838         (WebCore::DocumentLoader::stopRecordingResponses):
17839
17840 2012-11-08  Hans Muller  <hmuller@adobe.com>
17841
17842         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17843         https://bugs.webkit.org/show_bug.cgi?id=100874
17844
17845         Reviewed by Dirk Schulze.
17846
17847         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17848         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17849         to outside or outside to inside, now depends on which side of the horizontal line the function's
17850         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17851         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17852         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17853         of the polygon must be just above the horizontal edge.
17854
17855         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17856                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17857
17858         * rendering/ExclusionPolygon.cpp:
17859         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17860         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17861         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17862         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17863         * rendering/ExclusionPolygon.h:
17864         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17865
17866 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17867
17868         [BlackBerry] Disable cookies on file://
17869         https://bugs.webkit.org/show_bug.cgi?id=101646
17870
17871         Reviewed by Rob Buis.
17872
17873         Disabling cookies on file and local in the browser app.
17874
17875         PR 239779
17876
17877         Tested by trying to set and retrieve cookies on WI while browsing
17878         files on the file scheme.
17879
17880         * platform/blackberry/CookieManager.cpp:
17881         (WebCore):
17882         (WebCore::shouldIgnoreScheme):
17883         (WebCore::CookieManager::getRawCookies):
17884         (WebCore::CookieManager::checkAndTreatCookie):
17885
17886 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17887
17888         Expose snapshots in platform/leveldb wrapper API
17889         https://bugs.webkit.org/show_bug.cgi?id=100786
17890
17891         Reviewed by Tony Chang.
17892
17893         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17894         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17895         e.g. where a read transaction won't see updates made by a later write transaction.
17896
17897         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17898
17899         * platform/leveldb/LevelDBDatabase.cpp:
17900         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17901         (WebCore):
17902         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17903         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17904         (WebCore::LevelDBDatabase::createIterator): Ditto.
17905         * platform/leveldb/LevelDBDatabase.h:
17906         (leveldb):
17907         (WebCore):
17908         (LevelDBSnapshot):
17909         (LevelDBDatabase):
17910         * platform/leveldb/LevelDBTransaction.cpp:
17911         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17912         (WebCore::LevelDBTransaction::get):
17913         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17914         * platform/leveldb/LevelDBTransaction.h:
17915         (LevelDBTransaction):
17916
17917 2012-11-08  Brady Eidson  <beidson@apple.com>
17918
17919         Have NetworkProcess do the actual loading of subresources.
17920         https://bugs.webkit.org/show_bug.cgi?id=101640
17921
17922         Reviewed by Alexey Proskuryakov.
17923
17924         No new tests (No change in behavior in any configuration we test.)
17925
17926         * WebCore.exp.in:
17927         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17928
17929 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17930
17931         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17932         https://bugs.webkit.org/show_bug.cgi?id=101424
17933
17934         Reviewed by Noam Rosenthal.
17935
17936         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17937         WebKit2.
17938
17939         * platform/graphics/texmap/TextureMapperLayer.cpp:
17940         (WebCore::TextureMapperLayer::paintSelf):
17941
17942 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17943
17944         Unreviewed, rolling out r133945.
17945         http://trac.webkit.org/changeset/133945
17946         https://bugs.webkit.org/show_bug.cgi?id=101645
17947
17948         Numerous layout and unit test failures (Requested by
17949         jsbell|gardener on #webkit).
17950
17951         * bindings/scripts/CodeGeneratorV8.pm:
17952         (GenerateHeader):
17953         * bindings/scripts/test/V8/V8Float64Array.h:
17954         (WebCore::V8Float64Array::toNative):
17955         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17956         (WebCore::V8TestActiveDOMObject::toNative):
17957         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17958         (WebCore::V8TestCustomNamedGetter::toNative):
17959         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17960         (WebCore::V8TestEventConstructor::toNative):
17961         * bindings/scripts/test/V8/V8TestEventTarget.h:
17962         (WebCore::V8TestEventTarget::toNative):
17963         * bindings/scripts/test/V8/V8TestException.h:
17964         (WebCore::V8TestException::toNative):
17965         * bindings/scripts/test/V8/V8TestInterface.h:
17966         (WebCore::V8TestInterface::toNative):
17967         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17968         (WebCore::V8TestMediaQueryListListener::toNative):
17969         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17970         (WebCore::V8TestNamedConstructor::toNative):
17971         * bindings/scripts/test/V8/V8TestNode.h:
17972         (WebCore::V8TestNode::toNative):
17973         * bindings/scripts/test/V8/V8TestObj.h:
17974         (WebCore::V8TestObj::toNative):
17975         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
17976         (WebCore::V8TestSerializedScriptValueInterface::toNative):
17977         * bindings/v8/NPV8Object.cpp:
17978         (WebCore::v8ObjectToNPObject):
17979         (WebCore::npCreateV8ScriptObject):
17980         * bindings/v8/V8Collection.h:
17981         (WebCore::toNativeCollection):
17982         * bindings/v8/V8DOMWindowShell.cpp:
17983         (WebCore::setIsolatedWorldField):
17984         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
17985         * bindings/v8/V8DOMWrapper.cpp:
17986         (WebCore::V8DOMWrapper::isWrapperOfType):
17987         * bindings/v8/V8DOMWrapper.h:
17988         (WebCore::V8DOMWrapper::setDOMWrapper):
17989         (WebCore::V8DOMWrapper::clearDOMWrapper):
17990         * bindings/v8/WrapperTypeInfo.h:
17991         (WebCore::toNative):
17992         (WebCore::toWrapperTypeInfo):
17993
17994 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
17995
17996         JSC should infer when indexed storage contains only integers or doubles
17997         https://bugs.webkit.org/show_bug.cgi?id=98606
17998
17999         Reviewed by Oliver Hunt.
18000
18001         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
18002
18003         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
18004         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
18005         * bindings/js/JSClipboardCustom.cpp:
18006         (WebCore::JSClipboard::types):
18007         * bindings/js/JSDOMBinding.cpp:
18008         (WebCore::jsArray):
18009         * bindings/js/JSDOMBinding.h:
18010         (WebCore::jsArray):
18011         * bindings/js/JSInjectedScriptHostCustom.cpp:
18012         (WebCore::getJSListenerFunctions):
18013         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
18014         (WebCore::JSJavaScriptCallFrame::scopeChain):
18015         * bindings/js/JSMessageEventCustom.cpp:
18016         (WebCore::JSMessageEvent::ports):
18017         * bindings/js/JSMutationCallbackCustom.cpp:
18018         (WebCore::JSMutationCallback::handleEvent):
18019         * bindings/js/JSWebGLRenderingContextCustom.cpp:
18020         (WebCore::toJS):
18021         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
18022         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
18023         * bindings/js/SerializedScriptValue.cpp:
18024         (WebCore::CloneDeserializer::deserialize):
18025
18026 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
18027
18028         [BlackBerry] Update BB10 date input form.
18029         https://bugs.webkit.org/show_bug.cgi?id=101075
18030
18031         Reviewed by Rob Buis.
18032
18033         RIM PR 234531
18034         Internally Reviewed by Mike Fenton.
18035         Change date input appearance to button and hide caret when click on them.
18036
18037         * css/themeBlackBerry.css:
18038         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
18039
18040 2012-11-08  Adam Barth  <abarth@webkit.org>
18041
18042         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
18043         https://bugs.webkit.org/show_bug.cgi?id=101519
18044
18045         Reviewed by Ojan Vafai.
18046
18047         There should be no change in behavior.  The new API is slightly faster
18048         than the old API (and apparently works correctly internally in V8).
18049
18050         * bindings/scripts/CodeGeneratorV8.pm:
18051         (GenerateHeader):
18052         * bindings/scripts/test/V8/V8Float64Array.h:
18053         (WebCore::V8Float64Array::toNative):
18054         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
18055         (WebCore::V8TestActiveDOMObject::toNative):
18056         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
18057         (WebCore::V8TestCustomNamedGetter::toNative):
18058         * bindings/scripts/test/V8/V8TestEventConstructor.h:
18059         (WebCore::V8TestEventConstructor::toNative):
18060         * bindings/scripts/test/V8/V8TestEventTarget.h:
18061         (WebCore::V8TestEventTarget::toNative):
18062         * bindings/scripts/test/V8/V8TestException.h:
18063         (WebCore::V8TestException::toNative):
18064         * bindings/scripts/test/V8/V8TestInterface.h:
18065         (WebCore::V8TestInterface::toNative):
18066         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
18067         (WebCore::V8TestMediaQueryListListener::toNative):
18068         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
18069         (WebCore::V8TestNamedConstructor::toNative):
18070         * bindings/scripts/test/V8/V8TestNode.h:
18071         (WebCore::V8TestNode::toNative):
18072         * bindings/scripts/test/V8/V8TestObj.h:
18073         (WebCore::V8TestObj::toNative):
18074         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18075         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18076         * bindings/v8/NPV8Object.cpp:
18077         (WebCore::v8ObjectToNPObject):
18078         (WebCore::npCreateV8ScriptObject):
18079         * bindings/v8/V8Collection.h:
18080         (WebCore::toNativeCollection):
18081         * bindings/v8/V8DOMWindowShell.cpp:
18082         (WebCore::setIsolatedWorldField):
18083         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18084         * bindings/v8/V8DOMWrapper.cpp:
18085         (WebCore::V8DOMWrapper::isWrapperOfType):
18086         * bindings/v8/V8DOMWrapper.h:
18087         (WebCore::V8DOMWrapper::setDOMWrapper):
18088         (WebCore::V8DOMWrapper::clearDOMWrapper):
18089         * bindings/v8/WrapperTypeInfo.h:
18090         (WebCore::toNative):
18091         (WebCore::toWrapperTypeInfo):
18092
18093 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18094
18095         setAttributeNode and friends should not have optional argument
18096         https://bugs.webkit.org/show_bug.cgi?id=101631
18097
18098         Reviewed by Ojan Vafai.
18099
18100         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18101
18102         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18103         argument mandatory.
18104
18105         These used to throw DOMExceptions when an invalid type was passed instead of
18106         TypeError which is also a spec violation.
18107
18108         Updated existing tests.
18109
18110         * bindings/scripts/CodeGeneratorV8.pm:
18111         * dom/Element.cpp:
18112         * dom/Element.idl:
18113
18114 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18115
18116         IndexedDB: Remove unused error handling clauses when writing to transaction
18117         https://bugs.webkit.org/show_bug.cgi?id=100700
18118
18119         Reviewed by Tony Chang.
18120
18121         Transactions are written into in-memory data structures. This can only fail if allocation
18122         fails, so "success" results are always returned. Change the return types to void, and delete
18123         all of the unreachable error handling code.
18124
18125         No new tests - just refactoring/dead code removal.
18126
18127         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18128         (WebCore::putBool): Only write to transactions.
18129         (WebCore):
18130         (WebCore::putInt): Ditto.
18131         (WebCore::putVarInt): Ditto.
18132         (WebCore::putString): Ditto.
18133         (WebCore::putIDBKeyPath): Ditto.
18134         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18135         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18136         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18137         (WebCore::setMaxObjectStoreId):
18138         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18139         (WebCore::getNewVersionNumber):
18140         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18141         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18142         (WebCore::setMaxIndexId):
18143         (WebCore::IDBLevelDBBackingStore::createIndex):
18144         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18145         * platform/leveldb/LevelDBTransaction.cpp:
18146         (WebCore::LevelDBTransaction::set): Return type is void.
18147         (WebCore::LevelDBTransaction::put): Ditto.
18148         (WebCore::LevelDBTransaction::remove): Ditto.
18149         * platform/leveldb/LevelDBTransaction.h:
18150         (LevelDBTransaction):
18151
18152 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18153
18154         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18155         hit assertion added in r133840
18156         https://bugs.webkit.org/show_bug.cgi?id=101576
18157
18158         Reviewed by Abhishek Arya.
18159
18160         Update layout before invalidating caret rect as needed.
18161         Existing tests cover this.
18162
18163         * editing/FrameSelection.cpp:
18164         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18165         * editing/FrameSelection.h:
18166
18167 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18168
18169         Skip frame owner disconnect when there's no frames
18170         https://bugs.webkit.org/show_bug.cgi?id=101619
18171
18172         Reviewed by Ojan Vafai.
18173
18174         Even when there's no subframes in the document we traverse down every
18175         subtree on Node removal looking for frames to disconnect. This patch
18176         checks document()->frame()->tree()->firstChild() to skip this traversal
18177         if there's no subframes.
18178
18179         No new tests, this just short circuits code for speed.
18180
18181         * dom/ContainerNodeAlgorithms.h:
18182         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18183
18184 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18185
18186         Wrong error type is thrown for type errors in callbacks
18187         https://bugs.webkit.org/show_bug.cgi?id=101502
18188
18189         Reviewed by Adam Barth.
18190
18191         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18192
18193         http://www.w3.org/TR/WebIDL/#es-callback-function
18194
18195         Updated existing tests.
18196
18197         * bindings/scripts/CodeGeneratorJS.pm:
18198         * bindings/scripts/CodeGeneratorV8.pm:
18199         * bindings/scripts/test/JS/JSTestObj.cpp:
18200         * bindings/scripts/test/V8/V8TestObj.cpp:
18201
18202 2012-11-08  Andreas Kling  <kling@webkit.org>
18203
18204         4.68MB below RenderStyle::filter() on Membuster3.
18205         <http://webkit.org/b/101624>
18206         <rdar://problem/12663822>
18207
18208         Reviewed by Darin Adler.
18209
18210         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18211         from the rare non-inherited data (copy-on-write.)
18212         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18213
18214         4.68MB progression on Membuster3.
18215
18216         * css/StyleResolver.cpp:
18217         (WebCore::StyleResolver::loadPendingSVGDocuments):
18218         (WebCore::StyleResolver::loadPendingShaders):
18219         * rendering/style/RenderStyle.h:
18220
18221 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18222
18223         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18224         creates a directory and moves a file into it.
18225
18226         * loader/blackberry: Added.
18227
18228 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18229
18230         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18231
18232         Not reviewed.
18233
18234         * WebCore.xcodeproj/project.pbxproj:
18235
18236 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18237
18238         Optimized kerning and ligatures using caching
18239         https://bugs.webkit.org/show_bug.cgi?id=101269
18240
18241         Reviewed by Dan Bernstein.
18242
18243         Consider three kinds of text layout, and the value of caching for each:
18244
18245             (1) 1 layout of 100% unique words: small negative value.
18246
18247             (2) 1 layout of English prose: medium positive value.
18248
18249             (3) Many layouts of anything: extra-extra-large positive value.
18250
18251         Since we can't distinguish betwen these workflows a priori, we use statistical
18252         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18253         each cache access as a statistical sample, and use the cache in proportion to
18254         the observed probability of duplicate text measurement.
18255
18256         Benchmark results:
18257             plt3: 1% faster
18258             chapter-reflow-once-random: No change [*]
18259             chapter-reflow-once: 23% faster
18260             chapter-reflow-twice: 52% faster
18261             chapter-reflow-thrice: 68% faster
18262             chapter-reflow: 263% faster
18263             line-layout: 270% faster
18264
18265             [*] This is a stress test designed to make everything go wrong for
18266             caching. It does not represent real world content.
18267
18268         * GNUmakefile.list.am:
18269         * Target.pri:
18270         * WebCore.vcproj/WebCore.vcproj:
18271         * WebCore.xcodeproj/project.pbxproj:
18272         * platform/graphics/WidthCache.h: Added.
18273
18274         (WidthCache): Added a class that caches common word widths. This cache
18275         could cache more things or more cases in future -- but for now it seems
18276         to cover the common cases.
18277
18278         (SmallStringKey): Early profiling showed that allocating an AtomicString
18279         or String measurably added to the cost of the cache, so I added a custom
18280         string key that can be stored directly inside the table by value --
18281         empirically answering an age-old question with which Apple WebKit engineers
18282         seem to be obsessed.
18283
18284         (WebCore::WidthCache::SmallStringKey::capacity):
18285         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18286         (WebCore::WidthCache::SmallStringKey::characters):
18287         (WebCore::WidthCache::SmallStringKey::length):
18288         (WebCore::WidthCache::SmallStringKey::hash):
18289         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18290         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18291         (WebCore::WidthCache::SmallStringKeyHash::hash):
18292         (WebCore::WidthCache::SmallStringKeyHash::equal):
18293         (SmallStringKeyHash):
18294         (SmallStringKeyHashTraits):
18295         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18296
18297         (WebCore::WidthCache::WidthCache):
18298         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18299         so the compiler can inline it separate, hopefully further reducing cases
18300         of (1).
18301
18302         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18303         sampling policy here. Lots of different approaches are possible, and I
18304         just picked a simple one that seemed to work based on benchmarking. I'll
18305         point out some interesting sublteties I'm aware of here:
18306
18307             (*) Since we start at the min sampling rate, a font used for 20 words
18308             or fewer never allocates a cache. Anecdotally, some fonts seem to
18309             be used this way.
18310
18311             (*) When the sampling rate is x / y, sampling all x words in a row
18312             seems smart because some words may occur more commonly in relation to
18313             each other (such as 'each' and 'other'), and repeat workloads will
18314             lay out the same words in order. Intuitively, these are both reasons
18315             this policy may ramp up more effectively under load.
18316
18317             (*) I opted for linear back-off instead of, say, exponential back-off
18318             because we're not trying to back off to infinity -- just to our min
18319             sampling rate. Since we don't expect the cache to hit for every word,
18320             my guess is that exponential back-off would be too aggressive.
18321
18322             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18323             because it would be surprising to see a million unique words all used
18324             in the same document. (I would not like to play a Letterpress game
18325             against such a document.)
18326
18327         (WebCore::WidthCache::clear): Needed because a font can change, in which
18328         case we need to ditch its cache.
18329
18330         (WebCore::operator==): Needed for hashing.
18331
18332 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18333
18334         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18335         https://bugs.webkit.org/show_bug.cgi?id=101593
18336
18337         Reviewed by Pavel Feldman.
18338
18339         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18340         - append average frame length and & stddev in frame mode;
18341         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18342         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18343
18344         * English.lproj/localizedStrings.js:
18345         * inspector/front-end/TimelineFrameController.js:
18346         (WebInspector.FrameStatistics):
18347         * inspector/front-end/TimelineModel.js:
18348         (WebInspector.TimelineModel.aggregateTimeByCategory):
18349         * inspector/front-end/TimelinePanel.js:
18350         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18351         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18352         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18353         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18354         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18355         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18356         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18357         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18358         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18359         (WebInspector.TimelinePanel.prototype._refresh):
18360         * inspector/front-end/TimelinePresentationModel.js:
18361         (WebInspector.TimelinePresentationModel.prototype.):
18362         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18363         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18364         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18365         * inspector/front-end/timelinePanel.css:
18366         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18367         (.timeline-records-stats):
18368         (.timeline-frames-stats):
18369
18370 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18371
18372         [BlackBerry] Rework the API to use document coordinates
18373         https://bugs.webkit.org/show_bug.cgi?id=101608
18374         RIM PR 173292
18375
18376         Reviewed by Adam Treat.
18377
18378         Provide a better API for WebPage to relay.
18379         See Source/WebKit/blackberry/ChangeLog for details.
18380
18381         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18382         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18383         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18384         (Platform):
18385         (BlackBerry):
18386         (MediaPlayerPrivate):
18387
18388 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18389
18390         Unreviewed, rolling out r133892.
18391         http://trac.webkit.org/changeset/133892
18392         https://bugs.webkit.org/show_bug.cgi?id=101617
18393
18394         Compile failures on mac, android, linux (Requested by
18395         jsbell|gardener on #webkit).
18396
18397         * bindings/v8/DOMDataStore.cpp:
18398         (WebCore::DOMDataStore::current):
18399         * bindings/v8/DOMWrapperWorld.h:
18400         (WebCore::DOMWrapperWorld::domDataStore):
18401         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18402         * bindings/v8/V8DOMWrapper.h:
18403         (WebCore::V8DOMWrapper::getCachedWrapper):
18404
18405 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18406
18407         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18408         https://bugs.webkit.org/show_bug.cgi?id=101584
18409
18410         Reviewed by Pavel Feldman.
18411
18412         * inspector/front-end/CanvasProfileView.js:
18413         (WebInspector.CanvasProfileView):
18414         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18415         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18416         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18417         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18418         * inspector/front-end/canvasProfiler.css:
18419         (.canvas-trace-log):
18420         (#canvas-replay-image-container):
18421         (#canvas-replay-image):
18422
18423 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18424
18425         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18426         https://bugs.webkit.org/show_bug.cgi?id=101294
18427
18428         Reviewed by Ojan Vafai.
18429
18430         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.  
18431
18432         * rendering/RenderFlexibleBox.cpp:
18433         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18434
18435 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18436
18437         Unreviewed, rolling out r133429.
18438         http://trac.webkit.org/changeset/133429
18439         https://bugs.webkit.org/show_bug.cgi?id=101173
18440
18441         Speculative roll out, investigating perf regression.
18442
18443         * dom/ContextFeatures.cpp:
18444         * dom/ContextFeatures.h:
18445         * dom/Position.cpp:
18446         (WebCore::Position::Position):
18447         (WebCore::Position::findParent):
18448         * dom/TreeScope.cpp:
18449         (WebCore::TreeScope::getSelection):
18450         * html/HTMLTagNames.in:
18451         * html/shadow/HTMLContentElement.cpp:
18452         (WebCore::HTMLContentElement::contentTagName):
18453         * page/DOMWindow.idl:
18454
18455 2012-11-07  Emil A Eklund  <eae@chromium.org>
18456
18457         Fix enclosingLayoutRect calls in InlineFlowBox.h
18458         https://bugs.webkit.org/show_bug.cgi?id=101497
18459
18460         Reviewed by Levi Weintraub.
18461
18462         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18463         overrid enclosingLayoutRect to call closingIntRect. When we
18464         removed the LayoutTypes abstraction we switched these to
18465         enclosingIntRect to preserve the behavior.
18466         This patch changes these back to enclosingLayoutRect which is
18467         the desired behavior.
18468
18469         Covered by existing tests.
18470
18471         * rendering/InlineFlowBox.h:
18472         (WebCore::InlineFlowBox::layoutOverflowRect):
18473         (WebCore::InlineFlowBox::visualOverflowRect):
18474
18475 2012-11-08  Philip Rogers  <pdr@google.com>
18476
18477         Remove unnecessary save/restore in SVGTextRunRenderingContext
18478         https://bugs.webkit.org/show_bug.cgi?id=101546
18479
18480         Reviewed by Andreas Kling.
18481
18482         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18483         refactoring the code to save off the stroke thickness.
18484
18485         No new tests as this is heavily covered by existing tests.
18486
18487         * rendering/svg/SVGTextRunRenderingContext.cpp:
18488         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18489
18490 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18491
18492         [GTK] Clean up includes in GObject DOM bindings code
18493         https://bugs.webkit.org/show_bug.cgi?id=101077
18494
18495         Reviewed by Kentaro Hara.
18496
18497         Remove some headers included multiple times for the same file and
18498         fix consistency in the includes style.
18499
18500         * bindings/gobject/DOMObjectCache.cpp:
18501         * bindings/gobject/GObjectEventListener.cpp:
18502         * bindings/gobject/GObjectEventListener.h:
18503         * bindings/gobject/WebKitDOMBinding.cpp:
18504         * bindings/gobject/WebKitDOMBinding.h:
18505         * bindings/gobject/WebKitDOMEventTarget.cpp:
18506         * bindings/gobject/WebKitDOMEventTarget.h:
18507         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18508         (WebKit):
18509         * bindings/gobject/WebKitDOMObject.cpp:
18510         * bindings/gobject/WebKitDOMObject.h:
18511         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18512         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18513         * bindings/scripts/CodeGeneratorGObject.pm:
18514         (GenerateHeader):
18515         (GenerateFunction):
18516         (Generate):
18517         (WriteData):
18518         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18519         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18520         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18521         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18522         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18523         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18524         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18525         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18526         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18527         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18528         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18529         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18530         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18531         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18532         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18533         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18534         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18535         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18536         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18537         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18538         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18539         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18540         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18541         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18542         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18543         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18544         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18545         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18546         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18547         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18548         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18549         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18550         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18551         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18552         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18553         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18554         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18555         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18556         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18557
18558 2012-11-08  Dan Carney  <dcarney@google.com>
18559
18560         [V8] Main world should have one DOMDataStore
18561         https://bugs.webkit.org/show_bug.cgi?id=101470
18562
18563         Reviewed by Kentaro Hara.
18564
18565         The main world DOMWrapperWorld held onto a DOMDataStore that should
18566         never be used, as there is a static one optimized for speed in
18567         DOMDataStore.
18568
18569         No new tests. No change in functionality.
18570
18571         * bindings/v8/DOMDataStore.cpp:
18572         (WebCore::DOMDataStore::current):
18573         * bindings/v8/DOMWrapperWorld.h:
18574         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18575         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18576         * bindings/v8/V8DOMWrapper.h:
18577         (WebCore::V8DOMWrapper::getCachedWrapper):
18578
18579 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18580
18581         [EFL] Remove non-variable options from the build system
18582         https://bugs.webkit.org/show_bug.cgi?id=101506
18583
18584         Reviewed by Kenneth Rohde Christiansen.
18585
18586         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18587         as these are always set to const 1 and not really configurable.
18588
18589         Remove duplicate platform/graphics/cairo include path from
18590         PlatformEfl.cmake.
18591
18592         No new tests as there is no new functionality.
18593
18594         * PlatformEfl.cmake:
18595
18596 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18597
18598         Unused parameters on GraphicsLayerUpdater.cpp
18599         https://bugs.webkit.org/show_bug.cgi?id=101577
18600
18601         Reviewed by Kentaro Hara.
18602
18603         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18604         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18605
18606         * platform/graphics/GraphicsLayerUpdater.cpp:
18607         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18608         (WebCore::GraphicsLayerUpdater::screenDidChange):
18609
18610 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18611
18612         Web Inspector: Add option to disable rulers (Elements panel)
18613         https://bugs.webkit.org/show_bug.cgi?id=101554
18614
18615         Reviewed by Pavel Feldman.
18616
18617         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18618         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18619         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18620
18621         No new tests, a UI change.
18622
18623         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18624         * inspector/InspectorDOMAgent.cpp:
18625         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18626         * inspector/InspectorOverlay.cpp:
18627         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18628         * inspector/InspectorOverlay.h:
18629         (HighlightConfig): Add |bool showRulers|.
18630         (WebCore::Highlight::Highlight): Initialize fields.
18631         (Highlight): Add |bool showRulers|.
18632         (WebCore::Highlight::setDataFromConfig):
18633         * inspector/InspectorOverlayPage.html:
18634         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18635         * inspector/front-end/Settings.js: Add showMetricsRulers.
18636         * inspector/front-end/SettingsScreen.js:
18637         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18638
18639 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18640
18641         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18642         https://bugs.webkit.org/show_bug.cgi?id=100865
18643
18644         Reviewed by Kenneth Rohde Christiansen.
18645
18646         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18647         are used for screen media.
18648
18649         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18650
18651         * css/CSSStyleSheet.cpp:
18652         (WebCore::CSSStyleSheet::setMediaQueries):
18653         * css/MediaList.cpp:
18654         (WebCore):
18655         (WebCore::addResolutionWarningMessageToConsole):
18656         (WebCore::reportMediaQueryWarningIfNeeded):
18657         * css/MediaList.h:
18658         (WebCore):
18659         * css/MediaQueryMatcher.cpp:
18660         (WebCore::MediaQueryMatcher::matchMedia):
18661         * css/StyleSheetContents.cpp:
18662         (WebCore::StyleSheetContents::parserAppendRule):
18663
18664 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18665
18666         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18667         https://bugs.webkit.org/show_bug.cgi?id=101451
18668
18669         Reviewed by Yury Semikhatsky.
18670
18671         Solution: make console.time "title" parameter mandatory.
18672
18673         * page/Console.idl: Changed parameter specification.
18674
18675 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18676
18677         Unreviewed fixed inspector frontend compilation
18678
18679         * inspector/front-end/DataGrid.js:
18680
18681 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18682
18683         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18684         https://bugs.webkit.org/show_bug.cgi?id=101472
18685
18686         After r133049 the WebGL content is now displayed upside down
18687         for the Qt port. We cannot just apply a generic rule, that
18688         the content needs to be flipped upside down.
18689         Instead we have to query GLX to tell us, if the drawable's
18690         framebuffer is y-inverted.
18691
18692         Reviewed by Kenneth Rohde Christiansen.
18693
18694         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18695         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18696         (GraphicsSurfacePrivate):
18697         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18698
18699 2012-11-08  Mike West  <mkwst@chromium.org>
18700
18701         Warn when parsing an invalid X-Frame-Options header.
18702         https://bugs.webkit.org/show_bug.cgi?id=101447
18703
18704         Reviewed by Adam Barth.
18705
18706         An 'X-Frame-Options' header that contains an invalid option (that is,
18707         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18708         warning to notify developers that they've made a mistake.
18709
18710         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18711
18712         * dom/Document.cpp:
18713         (WebCore::Document::processHttpEquiv):
18714             Move the request identifier generation out of the failure block in
18715             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18716             ensures that the console message is properly tied to a request.
18717         * loader/FrameLoader.cpp:
18718         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18719         * loader/FrameLoader.h:
18720         (FrameLoader):
18721             'shouldInterruptLoadForXFrameOptions' now accepts a request
18722             identifier as a parameter, and generates a console message if the
18723             load is blocked.
18724         * loader/MainResourceLoader.cpp:
18725         (WebCore::MainResourceLoader::didReceiveResponse):
18726             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18727
18728 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18729
18730         Web Inspector: Timeline: Improve time/timeEnd appearance.
18731         https://bugs.webkit.org/show_bug.cgi?id=100936
18732
18733         Reviewed by Yury Semikhatsky.
18734
18735         Changes:
18736         - time/timeEnd records should be top level records only in "glue" mode
18737         - time/timeEnd records should display "message" in record list / popover
18738         - glued records add aggregated statistics to root record
18739         - glued records do not reduce their origin self time
18740
18741         Test: inspector/timeline/timeline-time.html
18742
18743         * English.lproj/localizedStrings.js: Added "Message" string.
18744         * inspector/front-end/TimelinePresentationModel.js:
18745         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18746
18747 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18748
18749         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18750         https://bugs.webkit.org/show_bug.cgi?id=101463
18751
18752         Reviewed by Vsevolod Vlasov.
18753
18754         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18755
18756         * inspector/InspectorClient.cpp:
18757         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18758         * inspector/InspectorFrontendHost.cpp:
18759         (WebCore::FrontendMenuProvider::create):
18760         (WebCore::FrontendMenuProvider::disconnect):
18761         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18762         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18763         (WebCore::FrontendMenuProvider::contextMenuCleared):
18764         (FrontendMenuProvider):
18765         (WebCore::InspectorFrontendHost::showContextMenu):
18766         * inspector/front-end/InspectorFrontendAPI.js:
18767         (InspectorFrontendAPI.loadCompleted):
18768         (InspectorFrontendAPI.contextMenuItemSelected):
18769         (InspectorFrontendAPI.contextMenuCleared):
18770         (InspectorFrontendAPI.dispatchMessageAsync):
18771         (InspectorFrontendAPI.dispatchMessage):
18772         * inspector/front-end/inspector.js:
18773
18774 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18775
18776         User can change a disabled select (drop down box)
18777         https://bugs.webkit.org/show_bug.cgi?id=100932
18778
18779         Reviewed by Kent Tamura.
18780
18781         <select> should not handle events if it's disabled.
18782
18783         Test: fast/forms/select/select-disabled.html
18784
18785         * html/HTMLSelectElement.cpp:
18786         (WebCore::HTMLSelectElement::defaultEventHandler):
18787
18788 2012-11-08  Alec Flett  <alecflett@chromium.org>
18789
18790         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18791         https://bugs.webkit.org/show_bug.cgi?id=101488
18792
18793         Reviewed by Ojan Vafai.
18794
18795         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18796
18797         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18798         2) remove IDBBackingStore::forEachRecord and friends
18799         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18800
18801         No new tests as this is purely code cleanup.
18802
18803         * Modules/indexeddb/IDBBackingStore.cpp:
18804         (WebCore::IDBLevelDBBackingStore::getRecord):
18805         (WebCore):
18806         (WebCore::IDBLevelDBBackingStore::putRecord):
18807         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18808         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18809         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18810         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18811         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18812         * Modules/indexeddb/IDBBackingStore.h:
18813         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18814         (IDBBackingStore):
18815         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18816         (WebCore::IDBCursorBackendImpl::close):
18817         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18818         (WebCore::IDBIndexBackendImpl::countInternal):
18819         (WebCore::IDBIndexBackendImpl::getInternal):
18820         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18821         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18822         (IDBLevelDBBackingStore):
18823         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18824         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18825         (WebCore):
18826         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18827         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18828         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18829         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18830
18831 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18832
18833         Web Inspector: console error after inspecting IndexedDB
18834         https://bugs.webkit.org/show_bug.cgi?id=101481
18835
18836         Reviewed by Pavel Feldman.
18837
18838         Added objectId nullity check to RemoteOBject::release.
18839         Drive-by added release for entry key and primaryKey.
18840
18841         * inspector/front-end/IndexedDBViews.js:
18842         (WebInspector.IDBDataView.prototype.clear):
18843         * inspector/front-end/RemoteObject.js:
18844         (WebInspector.RemoteObject.prototype.release):
18845
18846 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18847
18848         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18849         https://bugs.webkit.org/show_bug.cgi?id=101457
18850
18851         Reviewed by Pavel Feldman.
18852
18853         Migrated IndexedDB support to web facing IndexedDB API.
18854
18855         * inspector/Inspector.json:
18856         * inspector/InspectorIndexedDBAgent.cpp:
18857         (WebCore):
18858         (WebCore::assertIDBFactory):
18859         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18860         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18861         (WebCore::InspectorIndexedDBAgent::requestData):
18862         * inspector/front-end/IndexedDBModel.js:
18863         (WebInspector.IndexedDBModel.prototype.innerCallback):
18864         (WebInspector.IndexedDBModel.prototype._requestData):
18865         * inspector/front-end/IndexedDBViews.js:
18866         (WebInspector.IDBDataView.prototype._updateData.callback):
18867         (WebInspector.IDBDataView.prototype._updateData):
18868         (WebInspector.IDBDataGridNode):
18869         (WebInspector.IDBDataGridNode.prototype.createCell):
18870
18871 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18872
18873         Web Inspector: Drop dimmed crumb handling
18874         https://bugs.webkit.org/show_bug.cgi?id=94457
18875
18876         Reviewed by Vsevolod Vlasov.
18877
18878         No new tests. Existing inspector test should work.
18879
18880         * inspector/front-end/ElementsPanel.js:
18881         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18882         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18883         * inspector/front-end/breadcrumbList.css:
18884
18885 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18886
18887         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18888         https://bugs.webkit.org/show_bug.cgi?id=101363
18889
18890         Reviewed by Pavel Feldman.
18891
18892         Test: inspector/datagrid-autosize.html
18893
18894         * inspector/front-end/DataGrid.js:
18895         (WebInspector.DataGrid.prototype._autoSizeWidths):
18896         (WebInspector.DataGrid.prototype.autoSizeColumns):
18897
18898 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18899
18900         Implement week picking to calendar picker
18901         https://bugs.webkit.org/show_bug.cgi?id=101449
18902
18903         Reviewed by Kent Tamura.
18904
18905         This adds week picker mode to CalendarPicker.
18906
18907         No new tests. Tests will be added later when this feature is enabled in DRT.
18908
18909         * Resources/pagepopups/calendarPicker.css:
18910         (.month-mode .day):
18911         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18912         (.week-mode .available.day-selected.sunday): Ditto.
18913         (.week-mode .unavailable.day-selected):
18914         (.week-mode .unavailable.day-selected.monday):
18915         (.week-mode .unavailable.day-selected.sunday):
18916         (.week-mode .week-column.unavailable.day-selected):
18917         (.week-column): Hide week column unless in week mode.
18918         (.week-mode .week-column):
18919         * Resources/pagepopups/calendarPicker.js:
18920         (parseDateString): Support week string.
18921         (Week):
18922         (Week.parse): Parses "yyyy-Www" string.
18923         (Week.createFromDate): Creates Week containing datetime.
18924         (Week.createFromToday): Creates Week containing today.
18925         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18926         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18927         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18928         (Week.prototype.equals): Returns true if the Weeks are the same.
18929         (Week.prototype.previous): Returns the previous Week.
18930         (Week.prototype.next): Returns the next Week.
18931         (Week.prototype.startDate): Returns start datetime of Week.
18932         (Week.prototype.endDate): Returns end datetime of Week.
18933         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18934         (Week.prototype.toString): Returns ISO week string.
18935         (CalendarPicker): Add week picker mode.
18936         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18937         (YearMonthController.prototype.attachTo): Fix bug.
18938         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18939         (DaysTable.prototype.attachTo): Add week number column.
18940         (DaysTable.prototype._renderMonth): Render week numbers.
18941         (DaysTable.prototype.navigateToMonth): Render week numbers.
18942         (DaysTable.prototype.selectRange):
18943         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18944         (DaysTable.prototype._maybeSetPreviousMonth):
18945         (DaysTable.prototype._maybeSetNextMonth):
18946         (MonthPickerDaysTable.prototype.selectRange):
18947         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18948         (MonthPickerDaysTable.prototype._handleKey):
18949         (WeekPickerDaysTable): Added.
18950         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18951         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18952         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18953         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18954         (WeekPickerDaysTable.prototype._handleKey):
18955
18956 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18957
18958         Unreviewed, rolling out r133841.
18959         http://trac.webkit.org/changeset/133841
18960         https://bugs.webkit.org/show_bug.cgi?id=101542
18961
18962         Reverted patches were innocent (Requested by shinyak on
18963         #webkit).
18964
18965         * WebCore.exp.in:
18966         * dom/Element.cpp:
18967         (WebCore::Element::shadowPseudoId):
18968         * dom/Element.h:
18969         (Element):
18970         * dom/ElementRareData.cpp:
18971         (WebCore::ElementRareData::reportMemoryUsage):
18972         * dom/ElementRareData.h:
18973         (ElementRareData):
18974         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18975         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
18976         * html/ColorInputType.cpp:
18977         (WebCore::ColorInputType::createShadowSubtree):
18978         * html/HTMLTextAreaElement.cpp:
18979         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
18980         * html/RangeInputType.cpp:
18981         (WebCore::RangeInputType::createShadowSubtree):
18982         * html/TextFieldInputType.cpp:
18983         (WebCore::TextFieldInputType::createShadowSubtree):
18984         (WebCore::TextFieldInputType::updatePlaceholderText):
18985         * html/ValidationMessage.cpp:
18986         (WebCore::ValidationMessage::buildBubbleTree):
18987         * html/shadow/DateTimeEditElement.cpp:
18988         (WebCore::DateTimeEditBuilder::visitLiteral):
18989         (WebCore::DateTimeEditElement::DateTimeEditElement):
18990         * html/shadow/DateTimeFieldElement.cpp:
18991         (WebCore::DateTimeFieldElement::initialize):
18992         * html/shadow/DateTimeFieldElement.h:
18993         (DateTimeFieldElement):
18994         * html/shadow/PickerIndicatorElement.cpp:
18995         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
18996         * html/track/TextTrackCue.cpp:
18997         (WebCore::TextTrackCueBox::TextTrackCueBox):
18998         (WebCore::TextTrackCue::updateDisplayTree):
18999         * testing/Internals.cpp:
19000         (WebCore::Internals::setShadowPseudoId):
19001
19002 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19003
19004         Fix EFL build, which has accelerated compositing disabled, by making
19005         repaintViewRectangle() const.
19006
19007         * rendering/RenderView.cpp:
19008         (WebCore::RenderView::repaintViewRectangle):
19009         * rendering/RenderView.h:
19010         (RenderView):
19011
19012 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19013
19014         constify ALL the repaint containers
19015         https://bugs.webkit.org/show_bug.cgi?id=101541
19016
19017         Reviewed by Beth Dakin.
19018
19019         Make all the RenderLayerModelObject* repaintContainer arguments const, since
19020         these member functions should have no need to mutate this object.
19021
19022         * WebCore.exp.in:
19023         * rendering/RenderBR.h:
19024         * rendering/RenderBlock.cpp:
19025         (WebCore::RenderBlock::selectionGapRectsForRepaint):
19026         (WebCore::RenderBlock::rectWithOutlineForRepaint):
19027         * rendering/RenderBlock.h:
19028         * rendering/RenderBox.cpp:
19029         (WebCore::RenderBox::outlineBoundsForRepaint):
19030         (WebCore::RenderBox::mapLocalToContainer):
19031         (WebCore::RenderBox::clippedOverflowRectForRepaint):
19032         (WebCore::RenderBox::computeRectForRepaint):
19033         * rendering/RenderBox.h:
19034         * rendering/RenderFlowThread.cpp:
19035         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
19036         * rendering/RenderFlowThread.h:
19037         * rendering/RenderInline.cpp:
19038         (WebCore::RenderInline::clippedOverflowRectForRepaint):
19039         (WebCore::RenderInline::rectWithOutlineForRepaint):
19040         (WebCore::RenderInline::computeRectForRepaint):
19041         (WebCore::RenderInline::mapLocalToContainer):
19042         * rendering/RenderInline.h:
19043         * rendering/RenderListMarker.cpp:
19044         (WebCore::RenderListMarker::selectionRectForRepaint):
19045         * rendering/RenderListMarker.h:
19046         * rendering/RenderObject.cpp:
19047         (WebCore::RenderObject::repaintUsingContainer):
19048         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
19049         (WebCore::RenderObject::rectWithOutlineForRepaint):
19050         (WebCore::RenderObject::clippedOverflowRectForRepaint):
19051         (WebCore::RenderObject::computeRectForRepaint):
19052         (WebCore::RenderObject::computeFloatRectForRepaint):
19053         (WebCore::RenderObject::mapLocalToContainer):
19054         (WebCore::RenderObject::localToContainerQuad):
19055         (WebCore::RenderObject::localToContainerPoint):
19056         * rendering/RenderObject.h:
19057         (WebCore::RenderObject::selectionRectForRepaint):
19058         (WebCore::RenderObject::outlineBoundsForRepaint):
19059         * rendering/RenderReplaced.cpp:
19060         (WebCore::RenderReplaced::selectionRectForRepaint):
19061         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
19062         * rendering/RenderReplaced.h:
19063         * rendering/RenderTableCell.cpp:
19064         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
19065         (WebCore::RenderTableCell::computeRectForRepaint):
19066         * rendering/RenderTableCell.h:
19067         * rendering/RenderTableCol.cpp:
19068         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
19069         * rendering/RenderTableCol.h:
19070         * rendering/RenderTableRow.cpp:
19071         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
19072         * rendering/RenderTableRow.h:
19073         * rendering/RenderText.cpp:
19074         (WebCore::RenderText::clippedOverflowRectForRepaint):
19075         (WebCore::RenderText::selectionRectForRepaint):
19076         * rendering/RenderText.h:
19077         * rendering/RenderView.cpp:
19078         (WebCore::RenderView::mapLocalToContainer):
19079         (WebCore::RenderView::computeRectForRepaint):
19080         * rendering/RenderView.h:
19081         * rendering/svg/RenderSVGForeignObject.cpp:
19082         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
19083         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
19084         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
19085         * rendering/svg/RenderSVGForeignObject.h:
19086         * rendering/svg/RenderSVGGradientStop.h:
19087         * rendering/svg/RenderSVGHiddenContainer.h:
19088         * rendering/svg/RenderSVGInline.cpp:
19089         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
19090         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
19091         (WebCore::RenderSVGInline::mapLocalToContainer):
19092         * rendering/svg/RenderSVGInline.h:
19093         * rendering/svg/RenderSVGModelObject.cpp:
19094         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19095         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
19096         (WebCore::RenderSVGModelObject::mapLocalToContainer):
19097         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
19098         * rendering/svg/RenderSVGModelObject.h:
19099         * rendering/svg/RenderSVGRoot.cpp:
19100         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19101         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19102         (WebCore::RenderSVGRoot::mapLocalToContainer):
19103         * rendering/svg/RenderSVGRoot.h:
19104         * rendering/svg/RenderSVGText.cpp:
19105         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19106         (WebCore::RenderSVGText::computeRectForRepaint):
19107         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19108         (WebCore::RenderSVGText::mapLocalToContainer):
19109         * rendering/svg/RenderSVGText.h:
19110         * rendering/svg/SVGRenderSupport.cpp:
19111         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19112         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19113         (WebCore::SVGRenderSupport::mapLocalToContainer):
19114         * rendering/svg/SVGRenderSupport.h:
19115         (SVGRenderSupport):
19116
19117 2012-11-07  Kent Tamura  <tkent@chromium.org>
19118
19119         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19120         https://bugs.webkit.org/show_bug.cgi?id=101329
19121
19122         Reviewed by Kentaro Hara.
19123
19124         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19125         similar jobs with different code. We can merge them into one function.
19126
19127         As for the date format conversion, we have tokenized a format string and
19128         stored token objects into a vector. We skip token object generation and
19129         generate a LDML-compliant pattern string during parsing.
19130
19131         No new tests. This should make no behavior changes and
19132         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19133
19134         * platform/text/win/LocaleWin.cpp:
19135         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19136         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19137         convertWindowsTimeFormatToLDML.
19138         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19139         (WebCore::convertWindowsDateTimeFormat):
19140         Renamed from parseDateFormat, and supports time format symbols.
19141         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19142         (WebCore::LocaleWin::monthFormat): Ditto.
19143         (WebCore::LocaleWin::timeFormat): Ditto.
19144         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19145         * platform/text/win/LocaleWin.h:
19146         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19147
19148 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19149
19150         Unreviewed, rolling out r133428 and r133749
19151         https://bugs.webkit.org/show_bug.cgi?id=101533
19152
19153         These patches might cause memory regression.
19154
19155         * WebCore.exp.in:
19156         * dom/Element.cpp:
19157         (WebCore::Element::shadowPseudoId):
19158         (WebCore):
19159         (WebCore::Element::setShadowPseudoId):
19160         * dom/Element.h:
19161         (Element):
19162         * dom/ElementRareData.cpp:
19163         (WebCore::ElementRareData::reportMemoryUsage):
19164         * dom/ElementRareData.h:
19165         (ElementRareData):
19166         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19167         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19168         * html/ColorInputType.cpp:
19169         (WebCore::ColorInputType::createShadowSubtree):
19170         * html/HTMLTextAreaElement.cpp:
19171         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19172         * html/RangeInputType.cpp:
19173         (WebCore::RangeInputType::createShadowSubtree):
19174         * html/TextFieldInputType.cpp:
19175         (WebCore::TextFieldInputType::createShadowSubtree):
19176         (WebCore::TextFieldInputType::updatePlaceholderText):
19177         * html/ValidationMessage.cpp:
19178         (WebCore::ValidationMessage::buildBubbleTree):
19179         * html/shadow/DateTimeEditElement.cpp:
19180         (WebCore::DateTimeEditBuilder::visitLiteral):
19181         (WebCore::DateTimeEditElement::DateTimeEditElement):
19182         * html/shadow/DateTimeFieldElement.cpp:
19183         (WebCore::DateTimeFieldElement::initialize):
19184         * html/shadow/DateTimeFieldElement.h:
19185         (DateTimeFieldElement):
19186         * html/shadow/PickerIndicatorElement.cpp:
19187         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19188         * html/track/TextTrackCue.cpp:
19189         (WebCore::TextTrackCueBox::TextTrackCueBox):
19190         (WebCore::TextTrackCue::updateDisplayTree):
19191         * testing/Internals.cpp:
19192         (WebCore::Internals::setShadowPseudoId):
19193
19194 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19195
19196         Crash in WebCore::RenderLayer::normalFlowList
19197         https://bugs.webkit.org/show_bug.cgi?id=101528
19198
19199         Reviewed by Simon Fraser.
19200
19201         Make sure the layout is up to date before re-computing the caret rect.
19202         Avoid doing the layout when the selection is cleared since we can always stop
19203         the blink timer in that case.
19204
19205         Unfortunately, we haven't found any reproduction of this crash yet.
19206
19207         * editing/FrameSelection.cpp:
19208         (WebCore::isNonOrphanedCaret):
19209         (WebCore::FrameSelection::localCaretRect):
19210         (WebCore::FrameSelection::updateAppearance):
19211
19212 2012-11-07  Adam Barth  <abarth@webkit.org>
19213
19214         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19215         https://bugs.webkit.org/show_bug.cgi?id=101110
19216
19217         Reviewed by Kentaro Hara.
19218
19219         Hopefully the memory issues with this patch have been resolved by
19220         fixing bug 101525. This patch re-lands this patch again, hopefully for
19221         the last time.
19222
19223         * bindings/v8/DOMDataStore.cpp:
19224         (WebCore::DOMDataStore::weakCallback):
19225         * bindings/v8/DOMDataStore.h:
19226         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19227         (WebCore::DOMDataStore::getWrapperFromObject):
19228         (WebCore::DOMDataStore::setWrapperInObject):
19229
19230 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19231
19232         Seam occurred between pieces of ShadowBlur on floating point zoom
19233         https://bugs.webkit.org/show_bug.cgi?id=101435
19234
19235         Reviewed by Simon Fraser.
19236
19237         When paint Shadow that doesn't have blurred edge on floating point zoom,
19238         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19239         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19240         even if the unaligned clip rect occurred.
19241
19242
19243         * platform/graphics/ShadowBlur.cpp:
19244         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19245
19246 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19247
19248         Repaint issues with -webkit-svg-shadow used on a container
19249         https://bugs.webkit.org/show_bug.cgi?id=65643
19250         <rdar://problem/7600532>
19251
19252         Reviewed by Simon Fraser.
19253
19254         SVG renderer repaint rects are currently expanded only by the shadow of
19255         the renderer itself; however, the area they need to repaint can be larger
19256         than that, if their parents also have shadows. We need to take into account
19257         parent's shadows (respecting transforms, as well).
19258
19259         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19260         and ends up with a rect in layout coordinates, so we manually apply the shadow
19261         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19262         us to get the raw repaint rect without the shadow baked-in).
19263
19264         repaintRectInLocalCoordinates now includes shadows from all parents.
19265
19266         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19267         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19268         We can just swap the order of these things to correct this.
19269
19270         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19271
19272         * rendering/RenderObject.cpp:
19273         (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.
19274         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19275         * rendering/svg/RenderSVGImage.cpp:
19276         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19277         * rendering/svg/RenderSVGImage.h:
19278         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19279         * rendering/svg/RenderSVGModelObject.cpp:
19280         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19281         * rendering/svg/RenderSVGModelObject.h:
19282         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19283         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19284         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19285         * rendering/svg/RenderSVGRoot.cpp:
19286         (WebCore::RenderSVGRoot::RenderSVGRoot):
19287         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19288         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19289         * rendering/svg/RenderSVGRoot.h:
19290         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19291         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19292         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19293         * rendering/svg/RenderSVGShape.cpp:
19294         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19295         * rendering/svg/RenderSVGShape.h:
19296         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19297         * rendering/svg/SVGRenderSupport.cpp:
19298         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19299         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19300         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19301         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19302         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19303         transforming the repaint rect back into local coordinates.
19304         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19305         * rendering/svg/SVGRenderSupport.h:
19306
19307 2012-11-07  Anders Carlsson  <andersca@apple.com>
19308
19309         Add RemoteGraphicsLayer class
19310         https://bugs.webkit.org/show_bug.cgi?id=101535
19311
19312         Reviewed by Simon Fraser.
19313
19314         * WebCore.exp.in:
19315         Export GraphicsLayer symbols required by WebKit2.
19316
19317         * WebCore.xcodeproj/project.pbxproj:
19318         Make GraphicsLayerFactory.h a private header.
19319
19320 2012-11-07  Adam Barth  <abarth@webkit.org>
19321
19322         [V8] Don't leak <img> elements in content scripts
19323         https://bugs.webkit.org/show_bug.cgi?id=101525
19324
19325         Reviewed by Ojan Vafai.
19326
19327         I found the leak that was causing a problem for bug 101110. We weren't
19328         filling in the derefObjectFunction for HTMLImageElements (and
19329         potentially some other types of elements). That manifests today as a
19330         memory leak in content scripts (which use the derefObjectFunction for
19331         nodes) and caused a memory leak after bug 101110 because we started
19332         using the derefObjectFunction in the main world as well.
19333
19334         This patch adds ASSERTs so that we won't make this mistake in the future.
19335
19336         * bindings/scripts/CodeGeneratorV8.pm:
19337         (GenerateNamedConstructorCallback):
19338         * bindings/v8/DOMDataStore.cpp:
19339         (WebCore::DOMDataStore::weakCallback):
19340         * bindings/v8/DOMWrapperMap.h:
19341         (WebCore::DOMWrapperMap::defaultWeakCallback):
19342         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19343         (WebCore):
19344
19345 2012-11-07  Alec Flett  <alecflett@chromium.org>
19346
19347         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19348         https://bugs.webkit.org/show_bug.cgi?id=101486
19349
19350         Reviewed by Ojan Vafai.
19351
19352         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19353         preparation for merging these classes. This will make the merge
19354         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19355         for the final goal.
19356
19357         No new tests, this is is just a rename and minor style fix.
19358
19359         * CMakeLists.txt:
19360         * GNUmakefile.list.am:
19361         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19362         * WebCore.gypi:
19363         * WebCore.xcodeproj/project.pbxproj:
19364
19365 2012-11-07  Adam Barth  <abarth@webkit.org>
19366
19367         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19368         https://bugs.webkit.org/show_bug.cgi?id=101523
19369
19370         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19371         of a patch that was reviewed by Kentaro Hara.
19372
19373         Sadly, my patch for bug 101110 triggered the regression again. This
19374         patch is a smaller incremental step towards the patch in bug 101110. It
19375         doesn't make that much sense on its own, but it will help me isolate
19376         the source of the regression.
19377
19378         * bindings/v8/DOMDataStore.h:
19379         (WebCore::DOMDataStore::get):
19380         (DOMDataStore):
19381         (WebCore::DOMDataStore::set):
19382         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19383         (WebCore::DOMDataStore::getWrapperFromObject):
19384         (WebCore::DOMDataStore::setWrapperInObject):
19385
19386 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19387
19388         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19389         https://bugs.webkit.org/show_bug.cgi?id=101144
19390
19391         Reviewed by Enrica Casucci.
19392
19393         The bug was caused by attach() happening between each node removal. Since the command was trying
19394         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19395         imposed a huge runtime cost.
19396
19397         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19398         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19399         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19400
19401         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19402         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19403         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19404         7 seconds to open on my MacPro.
19405
19406         * editing/AppendNodeCommand.cpp:
19407         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19408         without calling isContentEditable or not.
19409         * editing/ApplyStyleCommand.cpp:
19410         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19411         object.
19412         * editing/CompositeEditCommand.cpp:
19413         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19414         (WebCore::CompositeEditCommand::removeNode): Ditto.
19415         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19416         * editing/CompositeEditCommand.h:
19417         (CompositeEditCommand):
19418         * editing/DeleteSelectionCommand.cpp:
19419         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19420         editable without calling isContentEditable or not.
19421         * editing/DeleteSelectionCommand.h:
19422         (DeleteSelectionCommand):
19423         * editing/EditCommand.h:
19424         * editing/InsertIntoTextNodeCommand.cpp:
19425         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19426         we need to have render objects for echoing.
19427         * editing/InsertNodeBeforeCommand.cpp:
19428         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19429         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19430         (WebCore::InsertNodeBeforeCommand::doUnapply):
19431         * editing/InsertNodeBeforeCommand.h:
19432         (WebCore::InsertNodeBeforeCommand::create):
19433         (InsertNodeBeforeCommand):
19434         * editing/RemoveNodeCommand.cpp:
19435         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19436         (WebCore::RemoveNodeCommand::doApply):
19437         * editing/RemoveNodeCommand.h:
19438         (WebCore::RemoveNodeCommand::create):
19439         (RemoveNodeCommand):
19440         * editing/RemoveNodePreservingChildrenCommand.cpp:
19441         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19442         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19443         * editing/RemoveNodePreservingChildrenCommand.h:
19444         (WebCore::RemoveNodePreservingChildrenCommand::create):
19445         (RemoveNodePreservingChildrenCommand):
19446         * editing/SimplifyMarkupCommand.cpp:
19447         (WebCore::SimplifyMarkupCommand::doApply):
19448         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19449         ancestors.
19450         * editing/SimplifyMarkupCommand.h:
19451         (SimplifyMarkupCommand):
19452
19453 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19454
19455         Unreviewed, rolling out r133810.
19456         http://trac.webkit.org/changeset/133810
19457         https://bugs.webkit.org/show_bug.cgi?id=101520
19458
19459         This patch made ws_single_peak_r regress by 15% (Requested by
19460         abarth on #webkit).
19461
19462         * bindings/v8/DOMDataStore.cpp:
19463         (WebCore::DOMDataStore::weakCallback):
19464         * bindings/v8/DOMDataStore.h:
19465         (WebCore::DOMDataStore::get):
19466         (WebCore::DOMDataStore::set):
19467         (DOMDataStore):
19468
19469 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19470
19471         Clean up confused use of Document::renderer and renderView
19472         https://bugs.webkit.org/show_bug.cgi?id=101484
19473
19474         Reviewed by Ojan Vafai.
19475
19476         Document::renderer and Document::renderView are the same thing, but it seems
19477         people don't always realize it and check if document()->renderer() is a RenderView.
19478
19479         This patch cleans up usage of document()->renderer() and document()->renderView() and
19480         simplifies the code that was written without realizing they were the same thing.
19481
19482         No new tests, this is just a refactor.
19483
19484         * accessibility/AccessibilityRenderObject.cpp:
19485         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19486         * dom/Element.cpp:
19487         (WebCore::Element::screenRect):
19488         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19489         * editing/FrameSelection.cpp: Remove verbose casts.
19490         (WebCore::clearRenderViewSelection):
19491         (WebCore::FrameSelection::recomputeCaretRect):
19492         (WebCore::CaretBase::invalidateCaretRect):
19493         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19494         * page/Frame.cpp:
19495         (WebCore::Frame::contentRenderer): Vastly simplified.
19496         * page/PrintContext.cpp: Remove verbose casts.
19497         (WebCore::PrintContext::computePageRects):
19498         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19499         * page/wince/FrameWinCE.cpp:
19500         (WebCore::computePageRectsForFrame): Remove unreachable code.
19501         * rendering/RenderObject.cpp:
19502         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19503
19504 2012-11-07  Adam Barth  <abarth@webkit.org>
19505
19506         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19507         https://bugs.webkit.org/show_bug.cgi?id=101110
19508
19509         Reviewed by Kentaro Hara.
19510
19511         This patch generalizes our support for storing wrappers in DOM objects
19512         to be usable for more than just nodes. After this patch, any object
19513         with a ScriptWrappable base class will have its wrapper stored inline
19514         in the object in the main world.
19515
19516         * bindings/v8/DOMDataStore.cpp:
19517         (WebCore::DOMDataStore::weakCallback):
19518         * bindings/v8/DOMDataStore.h:
19519         (WebCore::DOMDataStore::get):
19520         (WebCore::DOMDataStore::set):
19521
19522 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19523
19524         [BlackBerry] Update BB10 form theme.
19525         https://bugs.webkit.org/show_bug.cgi?id=100760
19526
19527         Reviewed by Rob Buis.
19528
19529         RIM PR 236997
19530         Internally Reviewed by Jakob Petsovits.
19531
19532         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19533
19534         * platform/blackberry/RenderThemeBlackBerry.cpp:
19535         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19536         (WebCore):
19537         (WebCore::RenderThemeBlackBerry::systemFont):
19538
19539 2012-11-07  Beth Dakin  <bdakin@apple.com>
19540
19541         https://bugs.webkit.org/show_bug.cgi?id=101303
19542         Fixed position elements that are out of view still end up forcing 
19543         non-threaded scrolling
19544         -and corresponding-
19545         <rdar://problem/12642222>
19546
19547         Reviewed by Simon Fraser.
19548
19549         Re-name hasNonLayerFixedObjects() to 
19550         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19551         * page/scrolling/ScrollingCoordinator.cpp:
19552         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19553         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19554         * page/scrolling/ScrollingCoordinator.h:
19555         (ScrollingCoordinator):
19556
19557         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19558         We don't want to bother with the extra computation in the 
19559         ScrollingCoordinator implementation, though other ports might still 
19560         want it.
19561         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19562         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19563         (ScrollingCoordinatorMac):
19564
19565         Make this function const so that we can call it from 
19566         requiresCompositingForPosition().
19567         * rendering/RenderLayerCompositor.cpp:
19568         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19569
19570         Actually be thorough here and check if the fixed object has any 
19571         descendants that are visible in the view. If it does, then we do 
19572         want to composite the fixed object.
19573         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19574         * rendering/RenderLayerCompositor.h:
19575
19576 2012-11-07  Roger Fong  <roger_fong@apple.com>
19577
19578         Unreviewed. Style fix following r133262.
19579
19580         * html/HTMLMediaElement.cpp:
19581         (WebCore::HTMLMediaElement::clearMediaPlayer):
19582         * html/HTMLMediaElement.h:
19583         (HTMLMediaElement):
19584
19585 2012-11-07  Adam Barth  <abarth@webkit.org>
19586
19587         [V8] DOMWrapperMap doesn't need to use virtual functions
19588         https://bugs.webkit.org/show_bug.cgi?id=101494
19589
19590         Reviewed by Kentaro Hara.
19591
19592         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19593
19594         * bindings/v8/DOMDataStore.cpp:
19595         (WebCore::DOMDataStore::DOMDataStore):
19596         * bindings/v8/DOMWrapperMap.h:
19597         (WebCore::DOMWrapperMap::DOMWrapperMap):
19598         (WebCore::DOMWrapperMap::get):
19599         (WebCore::DOMWrapperMap::set):
19600         (WebCore::DOMWrapperMap::clear):
19601         (WebCore::DOMWrapperMap::reportMemoryUsage):
19602         (WebCore::DOMWrapperMap::remove):
19603         (WebCore::DOMWrapperMap::defaultWeakCallback):
19604         * bindings/v8/V8NPObject.cpp:
19605         (WebCore::staticNPObjectMap):
19606
19607 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19608
19609         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19610         https://bugs.webkit.org/show_bug.cgi?id=101071
19611
19612         Reviewed by Dean Jackson.
19613
19614         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19615         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19616         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19617         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19618         at a later time, before painting.
19619
19620         No new tests, the change is covered by the css3/filters/custom/ tests.
19621
19622         * platform/graphics/filters/CustomFilterConstants.h:
19623         * platform/graphics/filters/CustomFilterProgramInfo.h:
19624         * platform/graphics/filters/CustomFilterRenderer.cpp:
19625         (WebCore::CustomFilterRenderer::create):
19626         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19627         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19628         (WebCore::CustomFilterRenderer::setCompiledProgram):
19629         (WebCore):
19630         (WebCore::CustomFilterRenderer::prepareForDrawing):
19631         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19632         * platform/graphics/filters/CustomFilterRenderer.h:
19633         (WebCore):
19634         (CustomFilterRenderer):
19635         (WebCore::CustomFilterRenderer::compiledProgram):
19636         * platform/graphics/filters/FECustomFilter.cpp:
19637         (WebCore::FECustomFilter::FECustomFilter):
19638         (WebCore::FECustomFilter::prepareForDrawing):
19639         * platform/graphics/filters/FECustomFilter.h:
19640         (FECustomFilter):
19641
19642 2012-11-07  Adam Barth  <abarth@webkit.org>
19643
19644         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19645         https://bugs.webkit.org/show_bug.cgi?id=101493
19646
19647         Reviewed by Kentaro Hara.
19648
19649         This patch is another incremental step towards landing the patch in bug
19650         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19651         longer needed.
19652
19653         * WebCore.gypi:
19654         * bindings/v8/DOMDataStore.cpp:
19655         (WebCore::DOMDataStore::DOMDataStore):
19656         (WebCore::DOMDataStore::~DOMDataStore):
19657         (WebCore::DOMDataStore::reportMemoryUsage):
19658         (WebCore::DOMDataStore::weakCallback):
19659         (WebCore):
19660         * bindings/v8/DOMDataStore.h:
19661         (WebCore::DOMDataStore::get):
19662         (WebCore::DOMDataStore::set):
19663         (DOMDataStore):
19664         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19665         * bindings/v8/V8GCController.cpp:
19666
19667 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19668
19669         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19670         https://bugs.webkit.org/show_bug.cgi?id=101475
19671
19672         Reviewed by Kenneth Rohde Christiansen.
19673
19674         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19675         using XFree to avoid memory leaks.
19676
19677         No tests. No change in behavior.
19678
19679         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19680         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19681         (WebCore::GraphicsSurfacePrivate::createSurface):
19682
19683 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19684
19685         Autoresize should work even if turned on while the page is loading.
19686         https://bugs.webkit.org/show_bug.cgi?id=101380
19687
19688         Reviewed by David Levin.
19689
19690         Autoresize does not work in cases where it is turned on while loading.
19691         This patch addresses this by allowing autoSize to complete if it's turned on
19692         while loading and doing a final pass after loading.
19693
19694         * loader/FrameLoader.cpp:
19695         (WebCore::FrameLoader::checkCompleted):
19696         Adjust to call renamed function.
19697         * page/FrameView.cpp:
19698         (WebCore::FrameView::handleLoadCompleted):
19699         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19700         (WebCore::FrameView::autoSizeIfEnabled):
19701         Allow the size to shrink if autosize is adjusted while the page is loading.
19702         * page/FrameView.h:
19703         (FrameView):
19704         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19705
19706 2012-11-07  Philip Rogers  <pdr@google.com>
19707
19708         Skip SVG repaint tracking when parent container transforms
19709         https://bugs.webkit.org/show_bug.cgi?id=101177
19710
19711         Reviewed by Eric Seidel.
19712
19713         This patch skips child repaint rect checks when a parent container is transformed, leading
19714         to a 75% increase on the RoboHornet SVG benchmark:
19715             http://www.robohornet.org/#et=svg  (average of 2 runs)
19716             Before patch: 161.6ms
19717             After patch: 38.5ms
19718
19719         SVG transforms are relative to the local container which makes calculating an absolute
19720         repaint rect expensive because it requires multiplying the local repaint rect by each
19721         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19722         as an example of this calculation.
19723
19724         This patch takes advantage of SVG's container rules: when a parent container's transform
19725         changes, all children must be repainted (there is no absolute positioning in SVG).
19726         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19727         the parent transform changed before doing child repaint checks. A similar optimization is
19728         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19729         is done when the view is fully repainted.
19730
19731         This code is tested in existing tests.
19732
19733         * rendering/svg/RenderSVGContainer.cpp:
19734         (WebCore::RenderSVGContainer::layout):
19735         * rendering/svg/RenderSVGForeignObject.cpp:
19736         (WebCore::RenderSVGForeignObject::layout):
19737         * rendering/svg/RenderSVGImage.cpp:
19738         (WebCore::RenderSVGImage::layout):
19739         * rendering/svg/RenderSVGShape.cpp:
19740         (WebCore::RenderSVGShape::layout):
19741         * rendering/svg/RenderSVGText.cpp:
19742         (WebCore::RenderSVGText::layout):
19743         * rendering/svg/SVGRenderSupport.cpp:
19744         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19745         (WebCore):
19746         * rendering/svg/SVGRenderSupport.h:
19747         (SVGRenderSupport):
19748
19749 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19750
19751         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19752         https://bugs.webkit.org/show_bug.cgi?id=101369
19753
19754         Reviewed by Darin Adler.
19755
19756         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19757         returns (through tab, or mouse click), then focus will be cleared and restored.
19758
19759         However, when focus is returned through accessibility means, focus is not cleared first, which
19760         means subsequent focus actions do nothing.
19761
19762         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19763
19764         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19765         moving focus back to the webpage.
19766       
19767         * accessibility/AccessibilityRenderObject.cpp:
19768         (WebCore::AccessibilityRenderObject::setFocused):
19769
19770 2012-11-07  Adam Barth  <abarth@webkit.org>
19771
19772         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19773         https://bugs.webkit.org/show_bug.cgi?id=101430
19774
19775         Reviewed by Kentaro Hara.
19776
19777         This is yet another incremental step towards landing the patch in bug
19778         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19779         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19780
19781         * UseV8.cmake:
19782         * WebCore.gypi:
19783         * bindings/v8/DOMDataStore.h:
19784         (WebCore::DOMDataStore::set):
19785         * bindings/v8/DOMWrapperWorld.h:
19786         * bindings/v8/ScriptProfiler.cpp:
19787         * bindings/v8/SerializedScriptValue.cpp:
19788         (WebCore::neuterBinding):
19789         * bindings/v8/V8DOMMap.cpp: Removed.
19790         * bindings/v8/V8DOMMap.h: Removed.
19791         * bindings/v8/V8DOMWindowShell.cpp:
19792         * bindings/v8/V8DOMWrapper.h:
19793         (WebCore::V8DOMWrapper::getCachedWrapper):
19794         (WebCore::V8DOMWrapper::setWrapperClass):
19795         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19796         * bindings/v8/V8NPObject.cpp:
19797         * bindings/v8/WorkerContextExecutionProxy.cpp:
19798         * bindings/v8/WorkerScriptController.cpp:
19799
19800 2012-11-07  Varun Jain  <varunjain@chromium.org>
19801
19802         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19803         https://bugs.webkit.org/show_bug.cgi?id=101385
19804
19805         Reviewed by Adam Barth.
19806
19807         Test: Only creating the new enum. No functionality change, hence no tests required.
19808
19809         * platform/PlatformEvent.h:
19810
19811 2012-11-05  Emil A Eklund  <eae@chromium.org>
19812
19813         Remove LayoutTypes abstraction
19814         https://bugs.webkit.org/show_bug.cgi?id=93050
19815
19816         Reviewed by Levi Weintraub.
19817
19818         Remove LayoutTypes abstraction and rename FractionalLayout* to
19819         Layout* now that all platforms use the FractionalLayout version
19820         (albeit with different fractions).
19821
19822         No new tests, no change in functionality.
19823
19824         * CMakeLists.txt:
19825         * GNUmakefile.list.am:
19826         * Target.pri:
19827         * WebCore.exp.in:
19828         * WebCore.gypi:
19829         * WebCore.vcproj/WebCore.vcproj:
19830         * WebCore.xcodeproj/project.pbxproj:
19831         * accessibility/AccessibilityNodeObject.cpp:
19832         * accessibility/AccessibilityNodeObject.h:
19833         * accessibility/AccessibilityObject.h:
19834         * accessibility/AccessibilityRenderObject.h:
19835         * css/LengthFunctions.cpp:
19836         * css/LengthFunctions.h:
19837         * dom/Document.h:
19838         * dom/DocumentMarkerController.h:
19839         * dom/ElementRareData.h:
19840         * dom/MouseRelatedEvent.h:
19841         * dom/Node.h:
19842         * dom/Touch.h:
19843         * editing/FrameSelection.cpp:
19844         * editing/FrameSelection.h:
19845         * editing/RenderedPosition.h:
19846         * html/HTMLAreaElement.h:
19847         * inspector/InspectorOverlay.h:
19848         * inspector/InspectorTimelineAgent.h:
19849         * inspector/TimelineRecordFactory.cpp:
19850         * inspector/TimelineRecordFactory.h:
19851         * loader/cache/CachedImage.h:
19852         * page/FocusController.h:
19853         * page/FrameView.h:
19854         * page/Page.h:
19855         * page/SpatialNavigation.cpp:
19856         * page/SpatialNavigation.h:
19857         * platform/FractionalLayoutUnit.h: Removed.
19858         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19859         * platform/Length.h:
19860         * platform/PopupMenuClient.h:
19861         * platform/animation/AnimationUtilities.h:
19862         * platform/graphics/FloatPoint.cpp:
19863         * platform/graphics/FloatPoint.h:
19864         * platform/graphics/FloatRect.cpp:
19865         * platform/graphics/FloatRect.h:
19866         * platform/graphics/FloatSize.cpp:
19867         * platform/graphics/FloatSize.h:
19868         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19869         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19870         * platform/graphics/FractionalLayoutPoint.h: Removed.
19871         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19872         * platform/graphics/FractionalLayoutRect.h: Removed.
19873         * platform/graphics/FractionalLayoutSize.h: Removed.
19874         * platform/graphics/GraphicsLayer.cpp:
19875         * platform/graphics/GraphicsLayerAnimation.cpp:
19876         * platform/graphics/IntRect.cpp:
19877         * platform/graphics/IntRect.h:
19878         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19879         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19880         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19881         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19882         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19883         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19884         * platform/graphics/MediaPlayer.h:
19885         * platform/graphics/filters/CustomFilterOperation.h:
19886         * platform/graphics/filters/CustomFilterParameterList.h:
19887         * platform/graphics/filters/FilterOperation.h:
19888         * platform/graphics/filters/FilterOperations.h:
19889         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19890         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19891         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19892         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19893         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19894         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19895         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19896         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19897         * platform/graphics/transforms/TransformOperations.h:
19898         * platform/graphics/transforms/TransformState.h:
19899         * platform/graphics/transforms/TransformationMatrix.cpp:
19900         * platform/graphics/transforms/TransformationMatrix.h:
19901         * rendering/AutoTableLayout.h:
19902         * rendering/ColumnInfo.h:
19903         * rendering/ExclusionShapeInsideInfo.h:
19904         * rendering/FilterEffectRenderer.h:
19905         * rendering/FixedTableLayout.h:
19906         * rendering/GapRects.h:
19907         * rendering/HitTestResult.h:
19908         * rendering/HitTestingTransformState.cpp:
19909         * rendering/HitTestingTransformState.h:
19910         * rendering/InlineFlowBox.cpp:
19911         * rendering/LayoutRepainter.cpp:
19912         * rendering/LayoutRepainter.h:
19913         * rendering/LayoutState.h:
19914         * rendering/LayoutTypes.h:
19915         * rendering/LayoutTypesInlineMethods.h:
19916         * rendering/PaintInfo.h:
19917         * rendering/RenderBlock.cpp:
19918         * rendering/RenderBlock.h:
19919         * rendering/RenderBlockLineLayout.cpp:
19920         * rendering/RenderBox.cpp:
19921         * rendering/RenderBox.h:
19922         * rendering/RenderBoxModelObject.cpp:
19923         * rendering/RenderBoxModelObject.h:
19924         * rendering/RenderDeprecatedFlexibleBox.cpp:
19925         * rendering/RenderFieldset.cpp:
19926         * rendering/RenderFlexibleBox.cpp:
19927         * rendering/RenderFlowThread.cpp:
19928         * rendering/RenderGeometryMap.h:
19929         * rendering/RenderImageResource.h:
19930         * rendering/RenderInline.cpp:
19931         * rendering/RenderLayer.cpp:
19932         * rendering/RenderLayerFilterInfo.h:
19933         * rendering/RenderLineBoxList.cpp:
19934         * rendering/RenderListMarker.cpp:
19935         * rendering/RenderMarquee.cpp:
19936         * rendering/RenderMenuList.h:
19937         * rendering/RenderMultiColumnBlock.cpp:
19938         * rendering/RenderMultiColumnSet.cpp:
19939         * rendering/RenderNamedFlowThread.cpp:
19940         * rendering/RenderObject.cpp:
19941         * rendering/RenderObject.h:
19942         * rendering/RenderOverflow.h:
19943         * rendering/RenderRegion.cpp:
19944         * rendering/RenderReplaced.cpp:
19945         * rendering/RenderTable.cpp:
19946         * rendering/RenderTable.h:
19947         * rendering/RenderText.cpp:
19948         * rendering/RenderThemeChromiumCommon.cpp:
19949         * rendering/RenderThemeChromiumCommon.h:
19950         * rendering/RenderTreeAsText.cpp:
19951         * rendering/RenderTreeAsText.h:
19952         * rendering/RenderView.h:
19953         * rendering/style/NinePieceImage.h:
19954         * rendering/style/RenderStyle.h:
19955         * rendering/style/ShadowData.cpp:
19956         * rendering/style/ShadowData.h:
19957         * rendering/style/StyleCachedImageSet.h:
19958         * rendering/style/StyleImage.h:
19959         * rendering/svg/SVGRenderSupport.h:
19960
19961 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19962
19963         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
19964         https://bugs.webkit.org/show_bug.cgi?id=100905
19965
19966         Reviewed by Noam Rosenthal.
19967
19968         Added getters for the validated shaders, so that platform code could extract them.
19969
19970         No new tests, just added two getters.
19971
19972         * platform/graphics/filters/CustomFilterValidatedProgram.h:
19973         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
19974         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
19975         (CustomFilterValidatedProgram):
19976
19977 2012-11-07  Joshua Bell  <jsbell@chromium.org>
19978
19979         IndexedDB: Assertion failure with open() within upgradeneeded
19980         https://bugs.webkit.org/show_bug.cgi?id=96947
19981
19982         Reviewed by Dimitri Glazkov.
19983
19984         Postpone creation of the "pending second half open" until the version change
19985         transaction has started.
19986
19987         Test: storage/indexeddb/unblocked-version-changes.html
19988
19989         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
19990         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
19991         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
19992         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
19993         (IDBDatabaseBackendImpl):
19994         * Modules/indexeddb/IDBDatabaseCallbacks.h:
19995
19996 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19997
19998         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
19999         https://bugs.webkit.org/show_bug.cgi?id=100890
20000
20001         Reviewed by Dean Jackson.
20002
20003         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
20004
20005         No new tests, this parameter is not used in the implementation yet.
20006
20007         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
20008         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
20009         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
20010         (WebCore::ValidatedCustomFilterOperation::create):
20011         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
20012         (WebCore::ValidatedCustomFilterOperation::operator==):
20013         (ValidatedCustomFilterOperation):
20014         * rendering/FilterEffectRenderer.cpp:
20015         (WebCore::createCustomFilterEffect):
20016         * rendering/RenderLayer.cpp:
20017         (WebCore::RenderLayer::computeFilterOperations):
20018
20019 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
20020
20021         [Qt] Implement deleteCookie() for persistent storage
20022         https://bugs.webkit.org/show_bug.cgi?id=101272
20023
20024         Reviewed by Jocelyn Turcotte.
20025
20026         Individual cookies were never persistently cleared as the
20027         deleteCookie() virtual method was not implemented for persistent
20028         storage. That's why cookies were only deleted for the current
20029         session.
20030
20031         * platform/qt/CookieJarQt.cpp:
20032         (WebCore::SharedCookieJarQt::deleteCookie):
20033         (WebCore): added deleteCookie() implementation for persistent
20034         storage.
20035         * platform/qt/CookieJarQt.h:
20036         (SharedCookieJarQt):
20037
20038 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20039
20040         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
20041         https://bugs.webkit.org/show_bug.cgi?id=100918
20042
20043         Reviewed by Dimitri Glazkov.
20044
20045         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
20046
20047         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
20048         but it might consume a lot of memory.
20049
20050         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
20051
20052         * dom/Element.cpp:
20053         (WebCore::Element::attributeChanged):
20054
20055 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
20056
20057         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
20058         https://bugs.webkit.org/show_bug.cgi?id=101474
20059
20060         Reviewed by Kentaro Hara.
20061
20062         Do not send low memory notification to V8 when most of memory usage
20063         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
20064         itself more optimally.
20065
20066         * bindings/v8/V8GCController.cpp:
20067         (WebCore::V8GCController::checkMemoryUsage):
20068
20069 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
20070
20071         [Qt] Open link in this window action
20072         https://bugs.webkit.org/show_bug.cgi?id=101226
20073
20074         Reviewed by Simon Hausmann.
20075
20076         Adds the action to the WebCore context-menu controller.
20077
20078         * page/ContextMenuController.cpp:
20079         (WebCore::ContextMenuController::contextMenuItemSelected):
20080         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
20081         * platform/ContextMenuItem.h:
20082         * platform/LocalizedStrings.h:
20083         * platform/qt/LocalizedStringsQt.cpp:
20084         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
20085
20086 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20087
20088         Web Inspector: [Canvas] closure compiler fixes
20089         https://bugs.webkit.org/show_bug.cgi?id=101459
20090
20091         Reviewed by Pavel Feldman.
20092
20093         * inspector/InjectedScriptCanvasModuleSource.js:
20094         (.):
20095
20096 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
20097
20098         Unreviewed, rolling out r133712.
20099         http://trac.webkit.org/changeset/133712
20100         https://bugs.webkit.org/show_bug.cgi?id=101461
20101
20102         Broke fast/forms/time* tests on chromium-win. (Requested by
20103         mkwst on #webkit).
20104
20105         * platform/text/win/LocaleWin.cpp:
20106         (WebCore::DateFormatToken::DateFormatToken):
20107         (DateFormatToken):
20108         (WebCore):
20109         (WebCore::isEraSymbol):
20110         (WebCore::isYearSymbol):
20111         (WebCore::isMonthSymbol):
20112         (WebCore::isDaySymbol):
20113         (WebCore::commitLiteralToken):
20114         (WebCore::parseDateFormat):
20115         (WebCore::LocaleWin::ensureShortDateTokens):
20116         (WebCore::convertWindowsDateFormatToLDML):
20117         (WebCore::mapCharacterToDateTimeFieldType):
20118         (WebCore::convertWindowsTimeFormatToLDML):
20119         (WebCore::LocaleWin::dateFormat):
20120         (WebCore::LocaleWin::monthFormat):
20121         (WebCore::LocaleWin::timeFormat):
20122         (WebCore::LocaleWin::shortTimeFormat):
20123         * platform/text/win/LocaleWin.h:
20124         (LocaleWin):
20125
20126 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20127
20128         Web Inspector: [Regression] Editing formatted source should not be allowed.
20129         https://bugs.webkit.org/show_bug.cgi?id=101355
20130
20131         Reviewed by Pavel Feldman.
20132
20133         * inspector/front-end/JavaScriptSourceFrame.js:
20134         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20135         * inspector/front-end/UISourceCodeFrame.js:
20136         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20137
20138 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20139
20140         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20141         https://bugs.webkit.org/show_bug.cgi?id=101306
20142
20143         Reviewed by Kent Tamura.
20144
20145         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20146         'pseudo' attribute.
20147
20148         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20149         constructed with AtomicStringFromLiteral, we use it.
20150
20151         No new tests, refactoring.
20152
20153         * WebCore.exp.in:
20154         * dom/Element.cpp:
20155         * dom/Element.h:
20156         (Element):
20157         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20158         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20159         * html/ColorInputType.cpp:
20160         (WebCore::ColorInputType::createShadowSubtree):
20161         * html/HTMLTextAreaElement.cpp:
20162         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20163         * html/RangeInputType.cpp:
20164         (WebCore::RangeInputType::createShadowSubtree):
20165         * html/TextFieldInputType.cpp:
20166         (WebCore::TextFieldInputType::createShadowSubtree):
20167         (WebCore::TextFieldInputType::updatePlaceholderText):
20168         * html/ValidationMessage.cpp:
20169         (WebCore::ValidationMessage::buildBubbleTree):
20170         * html/shadow/DateTimeEditElement.cpp:
20171         (WebCore::DateTimeEditBuilder::visitLiteral):
20172         (WebCore::DateTimeEditElement::DateTimeEditElement):
20173         * html/shadow/DateTimeFieldElement.cpp:
20174         (WebCore::DateTimeFieldElement::initialize):
20175         * html/shadow/DateTimeFieldElement.h:
20176         (DateTimeFieldElement):
20177         * html/shadow/PickerIndicatorElement.cpp:
20178         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20179         * html/track/TextTrackCue.cpp:
20180         (WebCore::TextTrackCueBox::TextTrackCueBox):
20181         (WebCore::TextTrackCue::updateDisplayTree):
20182         * testing/Internals.cpp:
20183         (WebCore::Internals::setShadowPseudoId):
20184
20185 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20186
20187         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20188         https://bugs.webkit.org/show_bug.cgi?id=101432
20189
20190         Reviewed by Pavel Feldman.
20191
20192         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20193
20194         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20195
20196         * inspector/InjectedScriptCanvasModuleSource.js:
20197         (.):
20198
20199 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20200
20201         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20202         https://bugs.webkit.org/show_bug.cgi?id=101354
20203
20204         Reviewed by Pavel Feldman.
20205
20206         * inspector/front-end/DebuggerScriptMapping.js:
20207         * inspector/front-end/NetworkUISourceCodeProvider.js:
20208         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20209         * inspector/front-end/Script.js:
20210         (WebInspector.Script.prototype.isSnippet):
20211         * inspector/front-end/ScriptSnippetModel.js:
20212         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20213
20214 2012-11-07  Dan Carney  <dcarney@google.com>
20215
20216         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20217         https://bugs.webkit.org/show_bug.cgi?id=100853
20218
20219         Reviewed by Adam Barth.
20220
20221         Slight cleanup. Removed redundant branch.
20222
20223         No new tests. No change in functionality.
20224
20225         * bindings/v8/V8DOMWrapper.h:
20226         (WebCore::V8DOMWrapper::getCachedWrapper):
20227
20228 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20229
20230         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20231
20232         The QtMultimedia namespace is now called QMultimedia and
20233         QtMultimedia::MetaData is now QMediaMetaData.
20234
20235         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20236         (WebCore::MediaPlayerPrivateQt::supportsType):
20237         (WebCore::MediaPlayerPrivateQt::totalBytes):
20238
20239 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20240
20241         Add replaceWithLiteral() method to WTF::String
20242         https://bugs.webkit.org/show_bug.cgi?id=101257
20243
20244         Reviewed by Benjamin Poulain.
20245
20246         Substitute String::replace() calls by String::replaceWithLiteral() where
20247         adequate, for efficiency.
20248
20249         No new tests, no behavior change.
20250
20251         * dom/Node.cpp:
20252         (WebCore::Node::showNode):
20253         * editing/EditingStyle.cpp:
20254         (WebCore::StyleChange::extractTextStyles):
20255         * editing/MarkupAccumulator.cpp:
20256         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20257         * html/HTMLAnchorElement.cpp:
20258         (WebCore::HTMLAnchorElement::setSearch):
20259         * loader/FormSubmission.cpp:
20260         (WebCore::appendMailtoPostFormDataToURL):
20261         * platform/network/soup/ProxyResolverSoup.cpp:
20262         (soupProxyResolverWkSetProperty):
20263         * plugins/PluginView.cpp:
20264         (WebCore::makeURL):
20265         * rendering/InlineTextBox.cpp:
20266         (WebCore::InlineTextBox::showBox):
20267         * xml/XSLTProcessor.cpp:
20268         (WebCore::transformTextStringToXHTMLDocumentString):
20269
20270 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20271
20272         Remove support for "desktop-width" in the viewport meta tag
20273         https://bugs.webkit.org/show_bug.cgi?id=101217
20274
20275         Reviewed by Gyuyoung Kim.
20276
20277         This has been removed from the CSS Device Adaptation spec, and
20278         should be safe to remove as it is not documented anywhere (neither
20279         in blog posts).
20280
20281         The viewport meta should only support the legacy features.
20282
20283         * dom/ViewportArguments.cpp:
20284         (WebCore::computeViewportAttributes):
20285         (WebCore::findSizeValue):
20286         (WebCore::findScaleValue):
20287         (WebCore::findUserScalableValue):
20288         * dom/ViewportArguments.h:
20289
20290 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20291
20292         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20293         https://bugs.webkit.org/show_bug.cgi?id=101343
20294
20295         Reviewed by Kenneth Rohde Christiansen.
20296
20297         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20298
20299         No new tests, fixes exif-orientation-image-document.html.
20300
20301         * rendering/RenderObject.cpp:
20302         (WebCore::RenderObject::shouldRespectImageOrientation):
20303
20304 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20305
20306         Console not displaying all properties of an Object once native Constructor overwritten
20307         https://bugs.webkit.org/show_bug.cgi?id=101320
20308
20309         Reviewed by Pavel Feldman.
20310
20311         Use Object instance from {}.constructor when formatting inspector messages in the
20312         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20313
20314         Test: inspector/console/console-Object-overwritten.html
20315
20316         * inspector/InjectedScriptSource.js:
20317
20318 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20319
20320         Implement month picking to calendar picker
20321         https://bugs.webkit.org/show_bug.cgi?id=101333
20322
20323         Reviewed by Kent Tamura.
20324
20325         This adds month picker mode to CalendarPicker.
20326
20327         No new tests. Tests will be added later when this feature is enabled in DRT.
20328
20329         * Resources/pagepopups/calendarPicker.css:
20330         (.month-mode .day): Remove rounded corners when in month mode.
20331         * Resources/pagepopups/calendarPicker.js:
20332         (Month.createFromToday): Creates month containing today.
20333         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20334         (CalendarPicker.prototype.handleToday):
20335         (CalendarPicker.prototype._layoutButtons):
20336         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20337         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20338         (DaysTable.prototype.selectRange): Selects a day.
20339         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20340         (DaysTable.prototype._selectRangeContainingNode):
20341         (DaysTable.prototype._rangeForNode): Returns Day for node.
20342         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20343         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20344         (DaysTable.prototype._handleKey):
20345         (MonthPickerDaysTable):
20346         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20347         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20348         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20349         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20350         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20351
20352 2012-11-06  Dan Beam  <dbeam@chromium.org>
20353
20354         Enable REQUEST_AUTOCOMPLETE for chromium port
20355         https://bugs.webkit.org/show_bug.cgi?id=101376
20356
20357         Reviewed by Adam Barth.
20358
20359         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20360
20361         * bindings/generic/RuntimeEnabledFeatures.cpp:
20362         (WebCore):
20363         * bindings/generic/RuntimeEnabledFeatures.h:
20364         (RuntimeEnabledFeatures):
20365
20366         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20367
20368         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20369
20370         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20371
20372         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20373
20374         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20375
20376         * html/HTMLFormElement.idl:
20377
20378         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20379         so these features can be changed with a command line switch in the chromium port.
20380
20381 2012-11-06  Adam Barth  <abarth@webkit.org>
20382
20383         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20384         https://bugs.webkit.org/show_bug.cgi?id=101422
20385
20386         Reviewed by Kentaro Hara.
20387
20388         This patch is another incremental step towards the patch in Bug 10110.
20389         In this step, we unify setJSWrapperForDOMObject and
20390         setJSWrapperForDOMNode.
20391
20392         * bindings/scripts/CodeGeneratorV8.pm:
20393         (GenerateHeader):
20394         (GenerateNormalAttrGetter):
20395         (GenerateConstructorCallback):
20396         (GenerateNamedConstructorCallback):
20397         (GenerateToV8Converters):
20398         * bindings/scripts/test/V8/V8Float64Array.h:
20399         (WebCore::V8Float64Array::wrap):
20400         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20401         (WebCore::V8TestActiveDOMObject::wrap):
20402         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20403         (WebCore::V8TestCustomNamedGetter::wrap):
20404         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20405         (WebCore::V8TestEventConstructor::wrap):
20406         * bindings/scripts/test/V8/V8TestEventTarget.h:
20407         (WebCore::V8TestEventTarget::wrap):
20408         * bindings/scripts/test/V8/V8TestException.h:
20409         (WebCore::V8TestException::wrap):
20410         * bindings/scripts/test/V8/V8TestInterface.h:
20411         (WebCore::V8TestInterface::wrap):
20412         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20413         (WebCore::V8TestMediaQueryListListener::wrap):
20414         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20415         (WebCore::V8TestNamedConstructor::wrap):
20416         * bindings/scripts/test/V8/V8TestNode.cpp:
20417         (WebCore::V8TestNode::constructorCallback):
20418         (WebCore::V8TestNode::wrapSlow):
20419         * bindings/scripts/test/V8/V8TestObj.cpp:
20420         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20421         * bindings/scripts/test/V8/V8TestObj.h:
20422         (WebCore::V8TestObj::wrap):
20423         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20424         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20425         * bindings/v8/DOMDataStore.cpp:
20426         (WebCore::DOMDataStore::current):
20427         * bindings/v8/DOMDataStore.h:
20428         (WebCore::DOMDataStore::get):
20429         (DOMDataStore):
20430         * bindings/v8/V8DOMWrapper.cpp:
20431         * bindings/v8/V8DOMWrapper.h:
20432         (V8DOMWrapper):
20433         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20434         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20435         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20436         (WebCore::v8HTMLImageElementConstructorCallback):
20437
20438 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20439
20440         Crash due to column span under button element
20441         https://bugs.webkit.org/show_bug.cgi?id=101402
20442
20443         Reviewed by Abhishek Arya.
20444
20445         When there is a column-spanning child of a RenderButton
20446         splitBlocks() must split the RenderButton as well as its
20447         only permitted direct child, the anonymous block referenced
20448         by m_inner. A crash was occurring because splitBlocks()
20449         calls addChildIgnoringAnonymousColumnBlocks() to add the
20450         cloned m_inner to the cloned RenderButton, which meant the
20451         m_inner for the cloned RenderButton was not being set even
20452         though a child was being added. This violates state
20453         assumptions in the RenderButton code.
20454
20455         This patch prevents any descendants of RenderButton from
20456         spanning columns. Also, it adds a precautionary check in
20457         RenderButton::removeChild() to mitigate problems if similar
20458         state problems are found in future.
20459
20460         * rendering/RenderBlock.cpp:
20461         (WebCore::RenderBlock::containingColumnsBlock):
20462         * rendering/RenderButton.cpp:
20463         (WebCore::RenderButton::removeChild):
20464
20465 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20466
20467         [Shadow] Pseudo custom-elements should start with 'x-'.
20468         https://bugs.webkit.org/show_bug.cgi?id=100919
20469
20470         Reviewed by Dimitri Glazkov.
20471
20472         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20473         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20474
20475         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20476
20477         * css/SelectorChecker.cpp:
20478         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20479
20480 2012-11-06  Chris Evans  <cevans@google.com>
20481
20482         Re-order variables in BidiRun and LayoutState
20483         https://bugs.webkit.org/show_bug.cgi?id=100173
20484
20485         Reviewed by Eric Seidel.
20486
20487         The variable re-ordering and use of bitfields for bools has two benefits:
20488         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.
20489         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.
20490
20491         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20492
20493         * platform/text/BidiResolver.h:
20494         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20495         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20496         * rendering/BidiRun.h:
20497         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20498         (BidiRun): m_hasHyphen is now stored in the base class.
20499         * rendering/LayoutState.cpp:
20500         (WebCore::LayoutState::LayoutState):
20501         * rendering/LayoutState.h:
20502         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20503         (LayoutState): re-order members to place bools adjacently.
20504
20505 2012-11-06  Kent Tamura  <tkent@chromium.org>
20506
20507         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20508         https://bugs.webkit.org/show_bug.cgi?id=101329
20509
20510         Reviewed by Kentaro Hara.
20511
20512         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20513         similar jobs with different code. We can merge them into one function.
20514
20515         As for the date format conversion, we have tokenized a format string and
20516         stored token objects into a vector. We skip token object generation and
20517         generate a LDML-compliant pattern string during parsing.
20518
20519         No new tests. This should make no behavior changes and
20520         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20521
20522         * platform/text/win/LocaleWin.cpp:
20523         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20524         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20525         convertWindowsTimeFormatToLDML.
20526         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20527         (WebCore::convertWindowsDateTimeFormat):
20528         Renamed from parseDateFormat, and supports time format symbols.
20529         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20530         (WebCore::LocaleWin::monthFormat): Ditto.
20531         (WebCore::LocaleWin::timeFormat): Ditto.
20532         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20533         * platform/text/win/LocaleWin.h:
20534         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20535
20536 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20537
20538         Make Document::renderer faster by using the cached ptr for RenderView
20539         https://bugs.webkit.org/show_bug.cgi?id=101409
20540
20541         Reviewed by Eric Seidel.
20542
20543         In Bug 101277 I made Document::renderView() just return m_renderView instead
20544         of casting the result of renderer(). While this made renderView() cheaper it
20545         makes more sense to just make renderer() faster for Document pointers and
20546         go back to the out of line method in RenderView.h because lots of places in
20547         the code do document()->renderer().
20548
20549         No new tests, this is just a refactor.
20550
20551         * dom/Document.h:
20552         (WebCore::Document::renderer):
20553         * rendering/RenderView.h:
20554         (WebCore::Document::renderView):
20555
20556 2012-11-06  Adam Barth  <abarth@webkit.org>
20557
20558         [V8] neuterBinding should remember the type of its argument
20559         https://bugs.webkit.org/show_bug.cgi?id=101413
20560
20561         Reviewed by Kentaro Hara.
20562
20563         This is a small part of the patch in
20564         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20565         separately to try to tease out what is causing the memory regression.
20566
20567         * bindings/v8/SerializedScriptValue.cpp:
20568         (WebCore):
20569         (WebCore::neuterBinding):
20570
20571 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20572
20573         Clean up which storage cookie jar functions use
20574         https://bugs.webkit.org/show_bug.cgi?id=101395
20575
20576         Reviewed by Brady Eidson.
20577
20578         * WebCore.exp.in:
20579         * platform/mac/WebCoreSystemInterface.h:
20580         * platform/mac/WebCoreSystemInterface.mm:
20581         Updated for two new WKSI functions.
20582
20583         * platform/CookieJar.h: Added explanatory comments.
20584
20585         * platform/mac/CookieJar.mm:
20586         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20587         already implements it.
20588         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20589         (WebCore::setCookies): Ditto.
20590         (WebCore::cookiesEnabled): Ditto.
20591         (WebCore::getRawCookies): Ditto.
20592         (WebCore::deleteCookie): Ditto.
20593         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20594         exclusively. While it makes sense to bypass private storage session, default storage
20595         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20596         use a WKSI function that supports both.
20597         (WebCore::deleteCookiesForHostname): Ditto.
20598         (WebCore::deleteAllCookies): Ditto.
20599
20600         * platform/network/cf/CookieJarCFNet.cpp:
20601         (WebCore::getHostnamesWithCookies):
20602         (WebCore::deleteCookiesForHostname):
20603         (WebCore::deleteAllCookies):
20604         Updated to match Foundation, so now these functions bypass private session.
20605
20606         * platform/network/cf/CookieStorageCFNet.cpp:
20607         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20608         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20609         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20610         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20611         here, and we certainly don't want a mismatch between start/stop due to private
20612         browsing mode changes.
20613         (WebCore::stopObservingCookieChanges): Ditto.
20614
20615         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20616
20617 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20618
20619         Build fix. r133601 broke the Windows build.
20620         https://bugs.webkit.org/show_bug.cgi?id=101404
20621
20622         Reviewed by Noam Rosenthal.
20623
20624         Only static const integral data members can be initialized within a class in the
20625         Windows, so we initialize static const double date members out of the class.
20626
20627         * platform/graphics/texmap/TextureMapper.cpp:
20628         (BitmapTexturePool):
20629         (WebCore):
20630
20631 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20632
20633         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20634         https://bugs.webkit.org/show_bug.cgi?id=89287
20635
20636         Reviewed by Beth Dakin.
20637
20638         If the body had -webkit-background-clip: text, we'd fail to paint
20639         anything behind it, so would see garbage pixels.
20640         
20641         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20642         on the renderer that paints the root background.
20643         
20644         Added some new pixel tests for combinations of html and body transform
20645         and backgrounds; earlier versions of the patch broke some of these tests.
20646
20647         Tests: fast/backgrounds/background-clip-text-on-body.html
20648                fast/backgrounds/transformed-body-background.html
20649                fast/backgrounds/transformed-body-html-background.html
20650                fast/backgrounds/transformed-html-body-background.html
20651
20652         * rendering/RenderView.cpp:
20653         (WebCore::rendererObscuresBackground): Broke up the single condition
20654         into early 'false' returns when possible. We need to also check whether
20655         the renderer that actually paints the background (which might be the body)
20656         will fill it; background-clip: text does not.
20657         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20658         actually check the root renderer, so that we can reliably get to the renderer
20659         that mains the root background.
20660
20661 2012-11-06  Stephen White  <senorblanco@chromium.org>
20662
20663         Implement save and restore for a bunch of InternalSettings state
20664         https://bugs.webkit.org/show_bug.cgi?id=101394
20665
20666         Reviewed by Dirk Pranke.
20667
20668         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20669         flaky tests by saving and restoring the InternalSettings state
20670         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20671         internal settings state which is being set by layout tests but not
20672         saved and restored.  It turns out there about 15 calls.
20673
20674         This patch takes care of five of them, mostly compositing-related.
20675         The others I was either not sure about, or were already at least
20676         being reset to known values by the testing harness.
20677
20678         Hopefully this will alleviate some further test flakiness.
20679
20680         * testing/InternalSettings.cpp:
20681         * testing/InternalSettings.h:
20682
20683 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20684
20685         Fix build warning in RenderLayer.cpp caused by r133628
20686         https://bugs.webkit.org/show_bug.cgi?id=101401
20687
20688         Reviewed by Simon Fraser.
20689
20690         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20691         so define it only that case for removing -Wunused-function warning
20692
20693         * rendering/RenderLayer.cpp:
20694         (WebCore):
20695
20696 2012-11-06  Hans Muller  <hmuller@adobe.com>
20697
20698         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20699         https://bugs.webkit.org/show_bug.cgi?id=100763
20700
20701         Reviewed by Darin Adler.
20702
20703         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20704         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20705         If this is not true, then we construct the polygon's edges in reverse.
20706
20707         To determine if the vertices are in clockwise order, we compare the slope
20708         of the line between the top,left vertex and its previous vertex, with the
20709         the slope of the line of vertices before and after the top,left vertex.
20710         If the slope of the latter is greater, then top,left vertex is located
20711         to its left, and the vertices are clockwise.
20712
20713         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20714
20715         * rendering/ExclusionPolygon.cpp:
20716         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20717         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20718         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20719
20720 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20721
20722         [BlackBerry] Update BB10 form theme.
20723         https://bugs.webkit.org/show_bug.cgi?id=100760
20724
20725         Reviewed by Rob Buis.
20726
20727         RIM PR 238123
20728         Internal Reviewed by Chris Hutten-Czapski
20729         BB10 selection theme use slice image function to draw selection button,
20730         any border-radius setting other than 0 will make the button corner
20731         clipped. Always set button border-radius: 0 for BB10 theme.
20732
20733         * css/themeBlackBerry.css:
20734         (select[size][multiple]):
20735         (select[size="1"]):
20736
20737 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20738
20739         Remove branch from inside RenderObject::view now that renderer() is more expensive
20740         https://bugs.webkit.org/show_bug.cgi?id=101277
20741
20742         Reviewed by Eric Seidel.
20743
20744         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20745         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20746         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20747         faster and removing the branch.
20748
20749         This is a 1% improvement on Parser/html5-full-render.html
20750
20751         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20752         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20753         it easier to find this method as it exists in the right header file now.
20754
20755         No new tests, this is just a refactor.
20756
20757         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20758         * dom/Document.cpp:
20759         (WebCore::Document::Document):
20760         (WebCore::Document::setRenderer):
20761         (WebCore):
20762         * dom/Document.h:
20763         (WebCore::Document::renderView):
20764         (Document):
20765         * rendering/RenderObject.h:
20766         (WebCore::RenderObject::view):
20767         * rendering/RenderView.h:
20768         (WebCore):
20769
20770 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20771
20772         Unreviewed, rolling out r133526.
20773         http://trac.webkit.org/changeset/133526
20774         https://bugs.webkit.org/show_bug.cgi?id=101388
20775
20776         May have caused 15% memory regression in Chromium (Requested
20777         by jsbell|gardener on #webkit).
20778
20779         * UseV8.cmake:
20780         * WebCore.gypi:
20781         * bindings/scripts/CodeGeneratorV8.pm:
20782         (GenerateHeader):
20783         (GenerateNormalAttrGetter):
20784         (GenerateConstructorCallback):
20785         (GenerateNamedConstructorCallback):
20786         (GenerateToV8Converters):
20787         (GetDomMapFunction):
20788         (GetDomMapName):
20789         * bindings/scripts/test/V8/V8Float64Array.h:
20790         (WebCore::V8Float64Array::wrap):
20791         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20792         (WebCore::V8TestActiveDOMObject::wrap):
20793         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20794         (WebCore::V8TestCustomNamedGetter::wrap):
20795         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20796         (WebCore::V8TestEventConstructor::wrap):
20797         * bindings/scripts/test/V8/V8TestEventTarget.h:
20798         (WebCore::V8TestEventTarget::wrap):
20799         * bindings/scripts/test/V8/V8TestException.h:
20800         (WebCore::V8TestException::wrap):
20801         * bindings/scripts/test/V8/V8TestInterface.h:
20802         (WebCore::V8TestInterface::wrap):
20803         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20804         (WebCore::V8TestMediaQueryListListener::wrap):
20805         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20806         (WebCore::V8TestNamedConstructor::wrap):
20807         * bindings/scripts/test/V8/V8TestNode.cpp:
20808         (WebCore::V8TestNode::constructorCallback):
20809         (WebCore::V8TestNode::wrapSlow):
20810         * bindings/scripts/test/V8/V8TestObj.cpp:
20811         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20812         * bindings/scripts/test/V8/V8TestObj.h:
20813         (WebCore::V8TestObj::wrap):
20814         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20815         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20816         * bindings/v8/DOMDataStore.cpp:
20817         (WebCore::DOMDataStore::DOMDataStore):
20818         (WebCore::DOMDataStore::~DOMDataStore):
20819         (WebCore::DOMDataStore::current):
20820         (WebCore::DOMDataStore::reportMemoryUsage):
20821         * bindings/v8/DOMDataStore.h:
20822         (WebCore::DOMDataStore::domNodeMap):
20823         (WebCore::DOMDataStore::domObjectMap):
20824         (DOMDataStore):
20825         * bindings/v8/DOMWrapperMap.h:
20826         (WebCore):
20827         (DOMWrapperMap):
20828         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20829         (WebCore::DOMWrapperHashMap::remove):
20830         * bindings/v8/DOMWrapperWorld.h:
20831         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20832         (WebCore):
20833         (IntrusiveDOMWrapperMap):
20834         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20835         * bindings/v8/ScriptProfiler.cpp:
20836         * bindings/v8/SerializedScriptValue.cpp:
20837         (WebCore::neuterBinding):
20838         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20839         (WebCore):
20840         (WebCore::getDOMNodeMap):
20841         (WebCore::getDOMObjectMap):
20842         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20843         (WebCore):
20844         * bindings/v8/V8DOMWindowShell.cpp:
20845         * bindings/v8/V8DOMWrapper.cpp:
20846         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20847         (WebCore):
20848         * bindings/v8/V8DOMWrapper.h:
20849         (V8DOMWrapper):
20850         (WebCore::V8DOMWrapper::getCachedWrapper):
20851         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20852         * bindings/v8/V8GCController.cpp:
20853         * bindings/v8/V8NPObject.cpp:
20854         * bindings/v8/WorkerContextExecutionProxy.cpp:
20855         * bindings/v8/WorkerScriptController.cpp:
20856         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20857         (WebCore::v8HTMLImageElementConstructorCallback):
20858
20859 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20860
20861         Some cookie code cleanup
20862         https://bugs.webkit.org/show_bug.cgi?id=101375
20863
20864         Reviewed by Dan Bernstein.
20865
20866         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20867         on in Mac port, but didn't add explanatory comments yet, because this is different
20868         in some ports.
20869
20870         * platform/mac/CookieJar.mm:
20871         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20872         supported OS X versions.
20873         (WebCore::filterCookies): Use -isHTTPOnly directly.
20874         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20875         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20876         (WebCore::setCookies): Assert that no more than one cookie was created from one
20877         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20878         (WebCore::getRawCookies): Removed useless local variables.
20879
20880         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20881
20882         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20883
20884 2012-11-06  John Griggs  <jgriggs@rim.com>
20885
20886         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20887         https://bugs.webkit.org/show_bug.cgi?id=100378
20888
20889         Reviewed by Eric Carlson.
20890
20891         Implement this method for BlackBerry platform.
20892
20893         New test: LayoutTests/media/progress-events-generated-correctly.html
20894
20895         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20896         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20897         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20898         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20899         (MediaPlayerPrivate):
20900
20901 2012-11-06  Adam Barth  <abarth@webkit.org>
20902
20903         DOMImplementation should use ScriptWrappable
20904         https://bugs.webkit.org/show_bug.cgi?id=101279
20905
20906         Reviewed by Eric Seidel.
20907
20908         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20909         bindings automatically detect the presence of this base class and use
20910         it to optimize getting and setting JavaScript wrappers.
20911
20912         This patch is a 23% progression on Bindings/document-implementation for
20913         the V8 bindings and a 69% progression for the JSC bindings.
20914
20915         * dom/DOMImplementation.h:
20916
20917 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20918
20919         Speed up TransformationMatrix::multiply() on modern ARM
20920         https://bugs.webkit.org/show_bug.cgi?id=101084
20921
20922         Reviewed by Gavin Barraclough.
20923
20924         The main improvements are:
20925         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20926          back and forth to memory to use the operands.
20927          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20928          we no longer need the temporary matrix memcopied at the end.
20929         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20930         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20931         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20932
20933         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20934
20935         * platform/graphics/transforms/TransformationMatrix.cpp:
20936         (WebCore::TransformationMatrix::multiply):
20937         * platform/graphics/transforms/TransformationMatrix.h:
20938         (TransformationMatrix):
20939
20940 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20941
20942         Unreviewed, rolling out r133529 and r133562.
20943         http://trac.webkit.org/changeset/133529
20944         http://trac.webkit.org/changeset/133562
20945         https://bugs.webkit.org/show_bug.cgi?id=101371
20946
20947         Caused 15% memory regression on Chromium page cyclers
20948         (Requested by jsbell|gardener on #webkit).
20949
20950         * platform/text/LineBreakIteratorPoolICU.h:
20951         (WebCore::LineBreakIteratorPool::take):
20952         (WebCore::LineBreakIteratorPool::put):
20953         (LineBreakIteratorPool):
20954         * platform/text/TextBreakIterator.cpp:
20955         (WebCore::acquireLineBreakIterator):
20956         * platform/text/TextBreakIterator.h:
20957         (WebCore):
20958         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20959         (WebCore::LazyLineBreakIterator::get):
20960         (WebCore::LazyLineBreakIterator::reset):
20961         (LazyLineBreakIterator):
20962         * platform/text/TextBreakIteratorICU.cpp:
20963         (WebCore::acquireLineBreakIterator):
20964         (WebCore::releaseLineBreakIterator):
20965         * platform/text/gtk/TextBreakIteratorGtk.cpp:
20966         (WebCore::setUpIterator):
20967         (WebCore::acquireLineBreakIterator):
20968         * platform/text/wince/TextBreakIteratorWinCE.cpp:
20969         (WebCore::acquireLineBreakIterator):
20970         * rendering/RenderBlockLineLayout.cpp:
20971         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
20972         * rendering/RenderText.cpp:
20973         (WebCore::RenderText::computePreferredLogicalWidths):
20974         * rendering/RenderText.h:
20975         (WebCore):
20976         * rendering/break_lines.cpp:
20977         (WebCore):
20978         (WebCore::isBreakableSpace):
20979         (WebCore::needsLineBreakIterator):
20980         (WebCore::nextBreakablePosition):
20981         (WebCore::nextBreakablePositionIgnoringNBSP):
20982         * rendering/break_lines.h:
20983         (WebCore):
20984         (WebCore::isBreakable):
20985
20986 2012-11-06  Peter Beverloo  <peter@chromium.org>
20987
20988         [Chromium] Enable the JavaScript i18n API for Android
20989         https://bugs.webkit.org/show_bug.cgi?id=101357
20990
20991         Reviewed by Adam Barth.
20992
20993         Remove the conditional dependency on the v8-i18n API. The library is now
20994         always available in a Chromium for Android checkout.
20995
20996         * WebCore.gyp/WebCore.gyp:
20997
20998 2012-11-06  Adam Barth  <abarth@webkit.org>
20999
21000         ScriptWrappable should work for more than just Node
21001         https://bugs.webkit.org/show_bug.cgi?id=101319
21002
21003         Reviewed by Eric Seidel.
21004
21005         This patch generalizes the inline cached wrapper code path to work with
21006         all subclasses of ScriptWrappable, not just Node.
21007
21008         * bindings/js/JSDOMBinding.h:
21009         (WebCore::setInlineCachedWrapper):
21010         (WebCore::getInlineCachedWrapper):
21011         (WebCore):
21012         (WebCore::clearInlineCachedWrapper):
21013         (WebCore::cacheWrapper):
21014         * bindings/js/JSNodeCustom.h:
21015
21016 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
21017
21018         [BlackBerry] Update BB10 form theme.
21019         https://bugs.webkit.org/show_bug.cgi?id=100760
21020
21021         Reviewed by Rob Buis.
21022
21023         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
21024         change which break media control and vertical slider.
21025
21026         RIM PR 236993
21027         Internal Reviewed by Jeff Rogers.
21028
21029         * platform/blackberry/RenderThemeBlackBerry.cpp:
21030         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
21031         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
21032
21033 2012-11-06  Michael Saboff  <msaboff@apple.com>
21034
21035         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
21036         https://bugs.webkit.org/show_bug.cgi?id=101105
21037
21038         Reviewed by Darin Adler.
21039
21040         Turned canonicalizedTitle() into a templated function based on character type.
21041         Changed call in updateTitle() to check the bitness of the title string to call
21042         the right template flavor of canonicalizedTitle().
21043         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
21044         and made TextEncoding::displayBuffer() a templated function as well.
21045
21046         No new tests needed, as functionality is unchanged.
21047
21048         * dom/Document.cpp:
21049         (WebCore::canonicalizedTitle):
21050         (WebCore::Document::updateTitle):
21051         (WebCore::Document::displayBufferModifiedByEncodingInternal):
21052         * dom/Document.h:
21053         (WebCore::Document::displayBufferModifiedByEncoding):
21054         * platform/text/TextEncoding.h:
21055         (TextEncoding):
21056         (WebCore::TextEncoding::displayBuffer):
21057
21058 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21059
21060         Fix RenderGeometryMap assertion when layers are scrolled during layout
21061         https://bugs.webkit.org/show_bug.cgi?id=101292
21062
21063         Reviewed by Beth Dakin.
21064
21065         When we set RenderLayer scroll positions as part of layout, we don't want
21066         to update compositing layers right away. Updating compositing layers
21067         requires that the entire layer tree has been updated from renderers,
21068         so that the geometry of all RenderLayers can be trusted. When this state
21069         was violated, RenderGeometryMap asserts.
21070         
21071         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
21072         tells us that we're doing layout. A full update of the compositing layers
21073         will happen later anyway.
21074
21075         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
21076
21077         * rendering/RenderLayer.cpp:
21078         (WebCore::frameViewFromLayer):
21079         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
21080
21081 2012-11-06  Michael Saboff  <msaboff@apple.com>
21082
21083         quoteCSSString() always creates a 16 bit string
21084         https://bugs.webkit.org/show_bug.cgi?id=101004
21085
21086         Reviewed by Darin Adler.
21087
21088         Added a new templated helper based on character type from the logic of quoteCSSString() to process
21089         the argument string based on its native bitness.
21090
21091         Functionality covered by existing tests.
21092
21093         * css/CSSParser.cpp:
21094         (WebCore::quoteCSSStringInternal):
21095         (WebCore::quoteCSSString):
21096
21097 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
21098
21099         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21100         https://bugs.webkit.org/show_bug.cgi?id=99715
21101
21102         Reviewed by Jocelyn Turcotte.
21103
21104         Add a bool that indicates if the content had an explicit
21105         initial-scale in the viewport meta tag.
21106
21107         * dom/ViewportArguments.cpp:
21108         (WebCore::computeViewportAttributes):
21109         * dom/ViewportArguments.h:
21110         (ViewportAttributes):
21111
21112 2012-11-06  Mike West  <mkwst@chromium.org>
21113
21114         CSP 1.1: Tweak the script interface to match the spec.
21115         https://bugs.webkit.org/show_bug.cgi?id=101321
21116
21117         Reviewed by Adam Barth.
21118
21119        This patch brings WebKit in line with the changes made to the spec in
21120        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21121        Specifically, the following:
21122
21123        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21124        - Converted the following to read-only boolean attributes:
21125          - 'allowsEval'
21126          - 'allowsInlineScript'
21127          - 'allowsInlineStyle'
21128          - 'isActive'
21129
21130         These changes only have effect for ports with CSP_NEXT enabled.
21131
21132         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21133                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21134
21135         * dom/Document.idl:
21136         * page/DOMSecurityPolicy.idl:
21137             Tweaking the IDL files to match the new definition of the
21138             functionlity in the spec.
21139
21140 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21141
21142         Added console.clear() method
21143
21144         Web Inspector: add console.clear()
21145         https://bugs.webkit.org/show_bug.cgi?id=101021
21146
21147         Reviewed by Vsevolod Vlasov.
21148
21149         Adds native implementation of console.clear
21150
21151         Test: inspector/console/console-clear-function.html
21152
21153         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21154         * inspector/ConsoleMessage.cpp:
21155         (WebCore::messageTypeValue): Adds ClearMessageType
21156         * inspector/Inspector.json:
21157         * inspector/InspectorConsoleAgent.cpp:
21158         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21159         * inspector/front-end/ConsoleMessage.js:
21160         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21161         * inspector/front-end/ConsoleModel.js:
21162         * inspector/front-end/inspector.css:
21163         (.console-info): Adds style for the 'console was cleared' message
21164         * page/Console.cpp: backend binging for console.clear()
21165         (WebCore::Console::clear):
21166         (WebCore):
21167         * page/Console.h:
21168         (Console):
21169         * page/Console.idl: Adds 'clear' message to protocol
21170         * page/ConsoleTypes.h:
21171
21172 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21173
21174         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21175         https://bugs.webkit.org/show_bug.cgi?id=101018
21176
21177         Reviewed by Eric Carlson.
21178
21179         Added an extra check to avoid using a negative array index when a cue
21180         is added to the beginning of the list.
21181
21182         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21183
21184         * html/track/TextTrackCueList.cpp:
21185         (WebCore::TextTrackCueList::add):
21186
21187 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21188
21189         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21190         https://bugs.webkit.org/show_bug.cgi?id=100981
21191
21192         Reviewed by Eric Carlson.
21193
21194         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21195         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21196         TextTrackCues are removed from m_cueTree.
21197
21198         Test: media/track/track-remove-by-setting-innerHTML.html
21199
21200         * html/HTMLMediaElement.cpp:
21201         (WebCore::HTMLMediaElement::willRemoveTrack):
21202
21203 2012-10-23  Stephen White  <senorblanco@chromium.org>
21204
21205         [skia] Implement reference (url) filters on composited layers.
21206         https://bugs.webkit.org/show_bug.cgi?id=100142
21207
21208         Reviewed by James Robinson.
21209
21210         Covered by css3/filters/effect-reference-hw.html
21211
21212         * WebCore.gyp/WebCore.gyp:
21213         * WebCore.gypi:
21214         Add new files.
21215         * WebCore.xcodeproj/project.pbxproj:
21216         Mark FilterEffect.h as "private".
21217         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21218         (WebCore::GraphicsLayerChromium::setFilters):
21219         Use the new SkImageFilter builder and setLayer() infrastructure, but
21220         only if there's a reference filter in the chain.
21221         * platform/graphics/filters/FEBlend.h:
21222         * platform/graphics/filters/FEColorMatrix.h:
21223         * platform/graphics/filters/FEGaussianBlur.h:
21224         * platform/graphics/filters/FELighting.h:
21225         * platform/graphics/filters/FEMorphology.h:
21226         * platform/graphics/filters/FilterEffect.h:
21227         (WebCore::FilterEffect::createImageFilter):
21228         Add createImageFilter() factory function for building SkImageFilters.
21229         * platform/graphics/filters/FilterOperation.h:
21230         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21231         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21232         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21233         for it.
21234         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21235         (WebCore::FEBlend::createImageFilter):
21236         Implement SkImageFilter building for FEBlend filter.
21237         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21238         (WebCore::createColorFilter):
21239         (WebCore::FEColorMatrix::platformApplySkia):
21240         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21241         (WebCore::FEColorMatrix::createImageFilter):
21242         Implement SkImageFilter building for FEColorMatrix filter.
21243         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21244         (WebCore::FEGaussianBlur::createImageFilter):
21245         Implement SkImageFilter building for FEGaussianBlur filter.
21246         * platform/graphics/filters/skia/FELightingSkia.cpp:
21247         (WebCore::FELighting::createImageFilter):
21248         Implement SkImageFilter building for FELighting filters.
21249         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21250         (WebCore::FEMorphology::createImageFilter):
21251         Implement SkImageFilter building for FEMorphology filter.
21252         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21253         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21254         (WebCore::SkiaImageFilterBuilder::build):
21255         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21256         Implement new helper class for building an SkImageFilter DAG from
21257         a FilterEffect DAG.  Can also build from FilterOperations list.
21258         * rendering/FilterEffectRenderer.cpp:
21259         (WebCore::FilterEffectRenderer::build):
21260         When building FilterEffects from a reference filter, also store the
21261         generated DAG on the ReferenceFilterOperation itself.
21262         * rendering/RenderLayer.cpp:
21263         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21264         Even when in composited mode, if there's a reference filter in the 
21265         chain, build the FilterEffect DAG from it.
21266
21267 2012-11-06  Max Feil  <mfeil@rim.com>
21268
21269         [BlackBerry] Automatically go fullscreen on video play
21270         https://bugs.webkit.org/show_bug.cgi?id=101100
21271
21272         Reviewed by Eric Carlson.
21273
21274         There is a requirement to have HTML5 video automatically enter
21275         fullscreen when a video starts playing (PR131774). This change
21276         implements this feature, with restrictions. The main restriction
21277         is adherence to WebKit's philosophy of only entering fullscreen
21278         due to a user gesture. This is important in order to avoid
21279         pop-up advertisements and other unwanted fullscreen content.
21280         One consequence of this is that video elements with the autoplay
21281         attribute will not automatically enter fullscreen.
21282
21283         Other caveats:
21284         - This feature applies only to "small screen" devices where
21285         automatically going fullscreen makes more sense.
21286         - Fullscreen will only be entered automatically when the
21287         video is played from the beginning (current time is zero).
21288         It is assumed that if the user is resuming play from a paused
21289         state and is not in fullscreen mode, then they exited fullscreen
21290         mode intentionally.
21291
21292         Test: platform/blackberry/media/video-automatic-fullscreen.html
21293
21294         * html/HTMLMediaElement.cpp:
21295         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21296         (WebCore):
21297         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21298         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21299         * html/HTMLMediaElement.h:
21300         (HTMLMediaElement):
21301         * platform/graphics/MediaPlayer.h:
21302         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21303         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21304         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21305         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21306         (WebCore::MediaPlayerPrivate::play):
21307         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21308         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21309         (WebCore):
21310         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21311         (MediaPlayerPrivate):
21312
21313 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21314
21315         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21316         https://bugs.webkit.org/show_bug.cgi?id=101215
21317
21318         Reviewed by Gustavo Noronha Silva.
21319
21320         Save the misspelled location and length of the string to the default values (-1, 0)
21321         at the beginning of the checkSpellingOfString method.
21322         It assumes that the words are spelled correctly and early return of method doesn't
21323         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21324
21325         * platform/text/enchant/TextCheckerEnchant.cpp:
21326         (TextCheckerEnchant::checkSpellingOfString):
21327
21328 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21329
21330         [TexMap] Remove unused textures in the texture pool.
21331         https://bugs.webkit.org/show_bug.cgi?id=100706
21332
21333         Reviewed by Noam Rosenthal.
21334
21335         Currently, we do not remove textures in the texture pool of
21336         TextureMapper. The texture pool is destroyed when TextureMapper is
21337         destroyed. It means the texture pool consumes texture memory until its
21338         destruction. This patch removes textures if the textures have been not
21339         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21340
21341         Changing cache policy is not testable in layout tests.
21342
21343         * platform/graphics/texmap/TextureMapper.cpp:
21344         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21345         (WebCore::BitmapTexturePoolEntry::markUsed):
21346         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21347         (BitmapTexturePoolEntry):
21348         (WebCore):
21349         (BitmapTexturePool):
21350         (WebCore::BitmapTexturePool::BitmapTexturePool):
21351         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21352         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21353         (WebCore::BitmapTexturePool::acquireTexture):
21354         (WebCore::TextureMapper::acquireTextureFromPool):
21355         (WebCore::TextureMapper::TextureMapper):
21356         (WebCore::TextureMapper::~TextureMapper):
21357         * platform/graphics/texmap/TextureMapper.h:
21358         (WebCore):
21359         (TextureMapper):
21360
21361 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21362
21363         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21364         https://bugs.webkit.org/show_bug.cgi?id=101067
21365
21366         Reviewed by Yury Semikhatsky.
21367
21368         Plain vanilla instrumentation for CachedMetadata class.
21369
21370         * CMakeLists.txt:
21371         * GNUmakefile.list.am:
21372         * Target.pri:
21373         * WebCore.gypi:
21374         * WebCore.vcproj/WebCore.vcproj:
21375         * WebCore.xcodeproj/project.pbxproj:
21376         * loader/CachedMetadata.cpp: Added.
21377         (WebCore):
21378         (WebCore::CachedMetadata::reportMemoryUsage):
21379         * loader/CachedMetadata.h:
21380         (CachedMetadata):
21381
21382 2012-11-06  Alexei Filippov  <alph@chromium.org>
21383
21384         Web Inspector: report physical memory really committed for JS heap in NMI
21385         https://bugs.webkit.org/show_bug.cgi?id=101335
21386
21387         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21388         Because of that the committed memory may not retain any physical
21389         memory until the very first access to the committed chunk.
21390         That led to JS heap reported more physical memory than was currently
21391         in use.
21392
21393         Reviewed by Vsevolod Vlasov.
21394
21395         * bindings/v8/ScriptGCEvent.cpp:
21396         (WebCore::ScriptGCEvent::getHeapSize):
21397
21398 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21399
21400         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21401         https://bugs.webkit.org/show_bug.cgi?id=100595
21402
21403         Reviewed by Yury Semikhatsky.
21404
21405         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21406         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21407         SourceFileId is now used across BreakpointManager to specify file name.
21408         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21409
21410         * inspector/front-end/BreakpointManager.js:
21411         (WebInspector.BreakpointManager.sourceFileId):
21412         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21413         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21414         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21415         (WebInspector.BreakpointManager.Breakpoint):
21416         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21417         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21418         (set WebInspector.BreakpointManager.Storage.Item):
21419
21420 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21421
21422         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21423         https://bugs.webkit.org/show_bug.cgi?id=101304
21424
21425         Reviewed by Kent Tamura.
21426
21427         The name Rect conflicts with CSS Rect.
21428
21429         No new tests. Just renaming.
21430
21431         * Resources/pagepopups/pickerCommon.js:
21432         (Rectangle): Renamed from Rect.
21433         (Rectangle.prototype.toString):
21434         (Rectangle.intersection):
21435         (adjustWindowRect):
21436         (hideWindow):
21437
21438 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21439
21440         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21441         https://bugs.webkit.org/show_bug.cgi?id=101190
21442
21443         Reviewed by Adam Barth.
21444
21445         To guarantee that we never stores NULL pointers to V8 internal
21446         fields, we want to insert ASSERT()s to setDOMWrapper().
21447         This patch replaces setDOMWrapper() that intentionally
21448         passes NULL pointers with clearDOMWrapper().
21449
21450         No tests. No change in behavior.
21451
21452         * bindings/v8/V8DOMWrapper.h:
21453         (V8DOMWrapper):
21454         (WebCore::V8DOMWrapper::clearDOMWrapper):
21455         * bindings/v8/V8NPObject.cpp:
21456         (WebCore::forgetV8ObjectForNPObject):
21457
21458 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21459
21460         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21461         https://bugs.webkit.org/show_bug.cgi?id=101064
21462
21463         Reviewed by Yury Semikhatsky.
21464
21465         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21466         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21467         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21468
21469         Test: http/tests/inspector/network/request-name-path.html
21470
21471         * inspector/front-end/NetworkPanel.js:
21472         (WebInspector.NetworkLogView.prototype._matchRequest):
21473         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21474         (WebInspector.NetworkLogView.prototype.performFilter):
21475         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21476         (WebInspector.NetworkDataGridNode.NameComparator):
21477         * inspector/front-end/NetworkRequest.js:
21478         (WebInspector.NetworkRequest.prototype.set url):
21479         (WebInspector.NetworkRequest.prototype.name):
21480         (WebInspector.NetworkRequest.prototype.path):
21481         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21482         * inspector/front-end/ParsedURL.js:
21483         (WebInspector.ParsedURL):
21484         (WebInspector.ParsedURL.prototype.get displayName):
21485         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21486         (WebInspector.ParsedURL.prototype.isAboutBlank):
21487         (WebInspector.ParsedURL.prototype.isDataURL):
21488
21489 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21490
21491         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21492         https://bugs.webkit.org/show_bug.cgi?id=101200
21493
21494         Reviewed by Yury Semikhatsky.
21495
21496         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21497         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21498         - Extracted spectrum's css into a separate file
21499
21500         * WebCore.gypi:
21501         * WebCore.vcproj/WebCore.vcproj:
21502         * inspector/front-end/DOMExtension.js:
21503         (Element.prototype.positionAt):
21504         (Size):
21505         (Element.prototype.measurePreferredSize):
21506         * inspector/front-end/HeapSnapshotView.js:
21507         (WebInspector.HeapSnapshotView.prototype.willHide):
21508         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21509         * inspector/front-end/Popover.js:
21510         (WebInspector.Popover):
21511         (WebInspector.Popover.prototype.show):
21512         (WebInspector.Popover.prototype.showView):
21513         (WebInspector.Popover.prototype._innerShow):
21514         (WebInspector.Popover.prototype.hide):
21515         (WebInspector.Popover.prototype.dispose):
21516         (WebInspector.Popover.prototype._positionElement):
21517         * inspector/front-end/Spectrum.js:
21518         (WebInspector.Spectrum.alphaDrag):
21519         (WebInspector.Spectrum):
21520         (WebInspector.Spectrum.prototype.wasShown):
21521         (WebInspector.SpectrumPopupHelper):
21522         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21523         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21524         (WebInspector.SpectrumPopupHelper.prototype.show):
21525         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21526         (WebInspector.SpectrumPopupHelper.prototype.hide):
21527         (WebInspector.ColorSwatch):
21528         (WebInspector.ColorSwatch.prototype.setColorString):
21529         * inspector/front-end/StylesSidebarPane.js:
21530         (WebInspector.StylesSidebarPane):
21531         (WebInspector.StylesSidebarPane.prototype.update):
21532         (WebInspector.StylesSidebarPane.prototype.willHide):
21533         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21534         * inspector/front-end/View.js:
21535         (WebInspector.View.prototype.measurePreferredSize):
21536         * inspector/front-end/WebKit.qrc:
21537         * inspector/front-end/elementsPanel.css:
21538         (.image-preview-container img):
21539         * inspector/front-end/inspector.css:
21540         (.swatch):
21541         (.swatch-inner):
21542         (.swatch-inner:hover):
21543         * inspector/front-end/spectrum.css: Added.
21544         (.spectrum-container):
21545         (.spectrum-top):
21546         (.spectrum-color):
21547         (.spectrum-display-value):
21548         (.spectrum-hue):
21549         (.spectrum-fill):
21550         (.spectrum-range-container):
21551         (.spectrum-range-container *):
21552         (.spectrum-range-container label):
21553         (.spectrum-range-container input):
21554         (.spectrum-dragger, .spectrum-slider):
21555         (.spectrum-sat):
21556         (.spectrum-val):
21557         (.spectrum-dragger):
21558         (.spectrum-slider):
21559         (.spectrum-container .swatch):
21560
21561 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21562
21563         removeAttribute('style') not working in certain circumstances
21564         https://bugs.webkit.org/show_bug.cgi?id=99295
21565
21566         Reviewed by Ryosuke Niwa.
21567
21568         After web developers did style.XXXX=YYYY for some element, the inline
21569         style should be always removable by using "removeAttribute('style')".
21570         Currently it depends on whether web developers invokes
21571         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21572         invoke getAttribute('style'), removeAttribute('style') works. This is
21573         very confusing behavior.
21574         Looking at Firefox browser, removeAttribute('style') always removes
21575         all inline styles.
21576
21577         Test: fast/css/remove-attribute-style.html
21578
21579         * css/StylePropertySet.cpp:
21580         (WebCore::StylePropertySet::clear):
21581         Added a new method to remove all style properties.
21582         (WebCore):
21583         * css/StylePropertySet.h:
21584         (StylePropertySet):
21585         * dom/Element.cpp:
21586         (WebCore::Element::removeAttribute):
21587         If 'style' is given but the element has no style attribute, the old
21588         code did nothing. However, if the element is styled element and has any
21589         inline styles, the inline styles should be removed. So invoke
21590         StyledElement::removeAllInlineStyleProperties and if any inline styles
21591         are removed, invoke style recalc, too.
21592         * dom/StyledElement.cpp:
21593         (WebCore::StyledElement::removeAllInlineStyleProperties):
21594         Added a new method to remove all inline style propeties. If any inline
21595         style is removed, invoke inlineStyleChanged() to force style recalc.
21596         (WebCore):
21597         * dom/StyledElement.h:
21598         (StyledElement):
21599
21600 2012-11-06  Alexei Filippov  <alph@chromium.org>
21601
21602         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21603         https://bugs.webkit.org/show_bug.cgi?id=101062
21604
21605         Reviewed by Yury Semikhatsky.
21606
21607         * inspector/front-end/nativeMemoryProfiler.css:
21608         (.native-snapshot-view .data-grid .expanded div.size-bar):
21609
21610 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21611
21612         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21613         https://bugs.webkit.org/show_bug.cgi?id=100826
21614
21615         Reviewed by Hajime Morita.
21616
21617         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21618         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21619         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21620         shadowPseudoId.
21621
21622         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21623         UAShadowRoot. However, we will disable them later.
21624
21625         Test: fast/dom/shadow/shadow-pseudo-id.html
21626
21627         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21628         * css/CSSParser.cpp:
21629         (WebCore::CSSParser::updateSpecifiersWithElementName):
21630         (WebCore::CSSParser::updateSpecifiers):
21631         * css/CSSParserValues.h:
21632         (WebCore::CSSParserSelector::isCustomPseudoElement):
21633         (CSSParserSelector):
21634         * css/CSSSelector.cpp:
21635         (WebCore::CSSSelector::pseudoId):
21636         (WebCore::CSSSelector::parsePseudoType):
21637         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21638         (WebCore::CSSSelector::extractPseudoType):
21639         * css/CSSSelector.h:
21640         (CSSSelector):
21641         (WebCore::CSSSelector::isCustomPseudoElement):
21642         (WebCore):
21643         * css/CSSSelectorList.cpp:
21644         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21645         UNKNOWN before. i.e. It contians all three types for now.
21646         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21647         * css/CSSSelectorList.h:
21648         (CSSSelectorList):
21649         * css/RuleSet.cpp:
21650         (WebCore::RuleSet::addRule):
21651         * css/SelectorChecker.cpp:
21652         (WebCore::SelectorChecker::checkSelector):
21653         * dom/Element.cpp:
21654         (WebCore::Element::setShadowPseudoId):
21655         * dom/SelectorQuery.cpp:
21656         (WebCore::SelectorQueryCache::add):
21657
21658 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21659
21660         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21661         https://bugs.webkit.org/show_bug.cgi?id=100922
21662
21663         Reviewed by Hajime Morita.
21664
21665         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21666         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21667
21668         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21669
21670         Test: fast/dom/shadow/has-elementshadow.html
21671
21672         * dom/ShadowRoot.cpp:
21673         (WebCore::ShadowRoot::ShadowRoot):
21674         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21675         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21676         (WebCore):
21677         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21678         * dom/ShadowRoot.h:
21679         (ShadowRoot):
21680         (WebCore::ShadowRoot::registerElementShadow):
21681         (WebCore::ShadowRoot::unregisterElementShadow):
21682         (WebCore::ShadowRoot::hasElementShadow):
21683         (WebCore::ShadowRoot::countElementShadow):
21684         * testing/Internals.cpp:
21685         (WebCore::Internals::countElementShadow):
21686         (WebCore):
21687         * testing/Internals.h:
21688         (Internals):
21689         * testing/Internals.idl:
21690
21691 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21692
21693         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21694         https://bugs.webkit.org/show_bug.cgi?id=101030
21695
21696         Reviewed by Vsevolod Vlasov.
21697
21698         * inspector/front-end/inspector.js:
21699         (WebInspector.loaded.WebInspector.socket.onclose):
21700         (WebInspector.loaded):
21701         (WebInspector.detached):
21702
21703 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21704
21705         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21706         https://bugs.webkit.org/show_bug.cgi?id=100666
21707
21708         Reviewed by Pavel Feldman.
21709
21710         * inspector/front-end/SettingsScreen.js:
21711         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21712
21713 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21714
21715         Web Inspector: JavaScript web workers debugging crashes
21716         https://bugs.webkit.org/show_bug.cgi?id=101065
21717
21718         Reviewed by Alexander Pavlov.
21719
21720         Clear m_pageInspector when page inspector instance is deleted.
21721         Disable worker inspection when front-end disconnects.
21722
21723         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21724
21725         * inspector/InspectorWorkerAgent.cpp:
21726         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21727         WorkerMessagingProxy so that it can clear pointer to the channel.
21728
21729 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21730
21731         Web Inspector: Console: wrap long URLs
21732         https://bugs.webkit.org/show_bug.cgi?id=100970
21733
21734         Reviewed by Yury Semikhatsky.
21735
21736         * inspector/front-end/inspector.css:
21737         (.console-message-url):
21738
21739 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21740
21741         Introduce Day class to calendar picker
21742         https://bugs.webkit.org/show_bug.cgi?id=101194
21743
21744         Reviewed by Kent Tamura.
21745
21746         Introducing Day class so day, week, and month can all be abstracted. To
21747         solve some of the complexity around which months to show, I made
21748         CalendarPicker in charge of it. This also made YearMonthController and
21749         DaysTable independent of each other.
21750
21751         No new tests. Covered by existing calendar-picker-*.html tests.
21752
21753         * Resources/pagepopups/calendarPicker.js:
21754         (createUTCDate): Allow negative month or date.
21755         (parseDateString): Will return Day or Month depending on string format.
21756         (Day): Represents a day.
21757         (Day.parse): Parse yyyy-mm-dd.
21758         (Day.createFromDate): Creates a Day that contains a datetime.
21759         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21760         (Day.prototype.equals): Returns true if they are the same.
21761         (Day.prototype.previous): Returns the previous day.
21762         (Day.prototype.next): Returns the next day.
21763         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21764         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21765         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21766         (Day.prototype.toString): Returns an ISO date string.
21767         (Month): Fix bug in calculating month from value.
21768         (Month.prototype.endDate): Use Day.Maximum.
21769         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21770         (CalendarPicker.prototype._layout):
21771         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21772         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21773         (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.
21774         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21775         (YearMonthController): Removed _currentMonth.
21776         (YearMonthController.prototype.attachTo):
21777         (YearMonthController.prototype.setMonth):
21778         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21779         (YearMonthController.prototype.moveRelatively):
21780         (DaysTable):
21781         (CalendarPicker.prototype._stepMismatch): Made private.
21782         (CalendarPicker.prototype._outOfRange): Made private.
21783         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21784         (DaysTable.prototype._renderMonth):
21785         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21786         (DaysTable.prototype.selectRange): Select a range.
21787         (DaysTable.prototype._maybeSetPreviousMonth):
21788         (DaysTable.prototype._maybeSetNextMonth):
21789         (DaysTable.prototype._handleKey):
21790         (CalendarPicker.prototype._handleBodyKeyDown):
21791
21792 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21793
21794         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21795         https://bugs.webkit.org/show_bug.cgi?id=101009
21796
21797         This fix requires the most recent version of harfbuzz-ng.
21798         EFL port uses version 0.9.2, which doesn't have the fix.
21799
21800         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21801         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21802
21803 2012-11-05  Glenn Adams  <glenn@skynav.com>
21804
21805         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21806         https://bugs.webkit.org/show_bug.cgi?id=101281
21807
21808         Reviewed by Ryosuke Niwa.
21809
21810         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21811         caused by http://trac.webkit.org/changeset/133529.
21812
21813         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21814
21815         * platform/text/TextBreakIterator.cpp:
21816         (WebCore::acquireLineBreakIterator):
21817         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21818         (WebCore::setUpIterator):
21819         (WebCore::acquireLineBreakIterator):
21820         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21821         (WebCore::acquireLineBreakIterator):
21822
21823 2012-11-05  Hayato Ito  <hayato@chromium.org>
21824
21825         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21826         https://bugs.webkit.org/show_bug.cgi?id=100470
21827
21828         Reviewed by Ryosuke Niwa.
21829
21830         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21831
21832         No changes to functionality, so no new tests.
21833
21834         * css/CSSSelector.cpp:
21835         (WebCore::CSSSelector::selectorText):
21836
21837 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21838
21839         [Chromium] Unicode combining diacritical aren't always combined on Linux
21840         https://bugs.webkit.org/show_bug.cgi?id=101009
21841
21842         Reviewed by Kent Tamura.
21843
21844         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21845         harfbuzz from inserting dotted-circle.
21846
21847         Test: fast/text/international/combining-marks-position.html
21848
21849         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21850         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21851
21852 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21853
21854         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21855         https://bugs.webkit.org/show_bug.cgi?id=101201
21856
21857         Reviewed by Hajime Morita.
21858
21859         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21860         We would like to avoid using a bit field for enum value.
21861
21862         * dom/ShadowRoot.cpp:
21863         (WebCore::ShadowRoot::create):
21864         * dom/ShadowRoot.h:
21865         (WebCore::ShadowRoot::type):
21866         (WebCore::ShadowRoot::setType):
21867         (ShadowRoot):
21868
21869 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21870
21871         TransformOperationInfo's constructor is really slow
21872         https://bugs.webkit.org/show_bug.cgi?id=101143
21873
21874         Reviewed by Sam Weinig.
21875
21876         TransformOperationInfo() was slow for a few reasons:
21877         -The function used a lot of branches. The basic assumption is that the input
21878          is incorrect, thus every character is an opportunity to fail.
21879         -Every branch had to be tested in order. If the name was matching the last if()
21880          all the previous names had to be tested.
21881         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21882          every time.
21883         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21884
21885         This can be fixed by either
21886         1) Compute the lowercase name, then match it to a HashMap.
21887         2) Write a tree to quickly reduce the number of branch needed.
21888
21889         The first solution is not viable because 16bits strings case folding
21890         remains an important bottleneck.
21891
21892         Instead, the code now splits the names on simple characteristics to
21893         match any name in a limited number of branches.
21894
21895         The assumption is the input is correct, so & is used instead of && to
21896         avoid branches in favor of conditional instructions.
21897
21898         * css/CSSParser.cpp:
21899         (WebCore::TransformOperationInfo::TransformOperationInfo):
21900
21901 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21902
21903         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21904         https://bugs.webkit.org/show_bug.cgi?id=101284
21905         <rdar://problem/11540560>
21906
21907         Reviewed by Tim Horton.
21908
21909         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21910         can be in a state where FrameView::needsLayout() is false. However,
21911         this is a bad time to update compositing layers, because we're about
21912         to do layout, which will require us to update them again soon anyway,
21913         and some RenderLayers may not have been sized or positioned yet.
21914         
21915         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21916         and toggling it around this call to updateStyleIfNeeded().
21917         Read this state in updateCompositingLayersAfterStyleChange(), which is
21918         now called unconditionally by recalcStyle(), but returns early
21919         if this flag is set, or layout is pending.
21920
21921         * dom/Document.cpp:
21922         (WebCore::Document::recalcStyle):
21923         * page/FrameView.cpp:
21924         (WebCore::FrameView::reset):
21925         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21926         (WebCore::FrameView::layout):
21927         * page/FrameView.h:
21928         (FrameView):
21929
21930 2012-11-05  Beth Dakin  <bdakin@apple.com>
21931
21932         https://bugs.webkit.org/show_bug.cgi?id=101275
21933         Clean up ScrollingConstraints.h
21934
21935         Reviewed by Simon Fraser.
21936
21937         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21938         compiler will generate those constructors for us anyway. The patch also makes the 
21939         two override functions private.
21940         * page/scrolling/ScrollingConstraints.h:
21941         (ViewportConstraints):
21942         (FixedPositionViewportConstraints):
21943         (StickyPositionViewportConstraints):
21944
21945 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21946
21947         Make Document::updateStyleIfNeeded() non-virtual
21948         https://bugs.webkit.org/show_bug.cgi?id=101273
21949
21950         Reviewed by Eric Seidel.
21951
21952         Document::updateStyleIfNeeded() has been virtual like forever, but
21953         no-one ever overrides it, so make it non-virtual.
21954
21955         * dom/Document.h:
21956         (Document):
21957
21958 2012-11-05  Philip Rogers  <pdr@google.com>
21959
21960         Unblock SVG external references
21961         https://bugs.webkit.org/show_bug.cgi?id=100635
21962
21963         Reviewed by Adam Barth.
21964
21965         This patch reverts r132849 and r132869 because the potential XSS issue
21966         turned out to not be an issue after all.
21967
21968         Covered by existing tests, many of which are re-whitelisted with this patch.
21969
21970         * loader/cache/CachedResourceLoader.cpp:
21971         (WebCore::CachedResourceLoader::canRequest):
21972
21973 2012-11-05  Beth Dakin  <bdakin@apple.com>
21974
21975         https://bugs.webkit.org/show_bug.cgi?id=101001
21976         Pages with position:fixed elements should still be able to scroll on 
21977         the scrolling thread
21978         -and corresponding-
21979         <rdar://problem/10857315>
21980
21981         Reviewed by Simon Fraser.
21982
21983         This patch adds two new classes. ScrollingStateFixedNode is a class 
21984         to represent fixed nodes in the state tree, and 
21985         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
21986         over on the scrolling thread.
21987         * WebCore.xcodeproj/project.pbxproj:
21988
21989         When we are (non-programatically) scrolling fixed objects on the 
21990         scrolling thread, we do not want to do any work here. 
21991         * page/FrameView.cpp:
21992         (WebCore::FrameView::updateFixedElementsAfterScrolling):
21993
21994         Whenever we sync the position of the main frame's layer, we have to 
21995         do the same for scrolling tree children.
21996         * page/scrolling/ScrollingCoordinator.cpp:
21997         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
21998
21999         New ScrollingNodeType -- FixedNode, yay! And two new functions 
22000         specific to dealing with FixedNodes.
22001         * page/scrolling/ScrollingCoordinator.h:
22002         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
22003         (WebCore::ScrollingCoordinator::syncChildPositions):
22004
22005         This is the new class that represents fixed nodes in the state tree. 
22006         All of the changed properties are stored within 
22007         FixedPositionViewportConstraints.
22008         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
22009         (WebCore):
22010         (WebCore::ScrollingStateFixedNode::create):
22011         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
22012         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
22013         (WebCore::ScrollingStateFixedNode::updateConstraints):
22014         (WebCore::ScrollingStateFixedNode::dumpProperties):
22015         * page/scrolling/ScrollingStateFixedNode.h: Added.
22016         (WebCore):
22017         (ScrollingStateFixedNode):
22018         (WebCore::ScrollingStateFixedNode::viewportConstraints):
22019         (WebCore::toScrollingStateFixedNode):
22020
22021         Make sure to create the right type of clone for each node.
22022         * page/scrolling/ScrollingStateNode.cpp:
22023         (WebCore::ScrollingStateNode::cloneAndReset):
22024
22025         Now that m_children may be anything other than null, I found this 
22026         bug. We encounter it when the parameter to removeChild is this and we 
22027         want to remove all of our children. In that case, this is obviously 
22028         not found in its own child array.
22029         (WebCore::ScrollingStateNode::removeChild):
22030
22031         ScrollingStateNode now caches the GraphicsLayer in addition to the 
22032         PlatformLayer. This will allow us to sync the GraphicsLayer position 
22033         at the appropriate times.
22034         * page/scrolling/ScrollingStateNode.h:
22035         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
22036         (WebCore::ScrollingStateNode::graphicsLayer):
22037         (ScrollingStateNode):
22038
22039         Handle fixed nodes.
22040         * page/scrolling/ScrollingTree.cpp:
22041         (WebCore::ScrollingTree::updateTreeFromStateNode):
22042
22043         New function parentScrollPositionDidChange() is called on children 
22044         when the parent has scrolled.
22045         * page/scrolling/ScrollingTreeNode.h:
22046         (ScrollingTreeNode):
22047         * page/scrolling/ScrollingTreeScrollingNode.h:
22048         (ScrollingTreeScrollingNode):
22049
22050         Return true for supportsFixedPositionLayers(). 
22051         * page/scrolling/mac/ScrollingCoordinatorMac.h:
22052         (ScrollingCoordinatorMac):
22053
22054         Handle fixed nodes.
22055         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
22056         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
22057
22058         Now that m_children can be non-null I caught this pre-existing bug 
22059         where we would come times remove a node without updating the HashMap. 
22060         This patch fixes that by consolidating the removal into one function.
22061         (WebCore::ScrollingCoordinatorMac::removeNode):
22062         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
22063         (WebCore::ScrollingCoordinatorMac::clearStateTree):
22064
22065         Update the GraphicsLayers to reflect the new position that the 
22066         Scrolling thread has moved the underlying CALayer to already.
22067         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
22068
22069         Pass new constraints over to the appropriate state node.
22070         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
22071
22072         Cache the GraphicsLayer in addition to the PlatformLayer.
22073         * page/scrolling/mac/ScrollingStateNodeMac.mm:
22074         (WebCore::ScrollingStateNode::setScrollLayer):
22075
22076         Here is the new class that represents fixed nodes over on the 
22077         scrolling thread. 
22078         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
22079         (WebCore):
22080         (ScrollingTreeFixedNode):
22081         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
22082         (WebCore):
22083         (WebCore::ScrollingTreeFixedNode::create):
22084         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
22085         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
22086         (WebCore::ScrollingTreeFixedNode::update):
22087
22088         This is where the magic happens. re-position the fixed object when 
22089         its parent has scrolled so that it appears to have not moved at all.
22090         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
22091
22092         Whenever we change the position of a scrolling layer, tell our 
22093         children.
22094         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
22095         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
22096
22097         Handle fixed nodes.
22098         * rendering/RenderLayerBacking.cpp:
22099         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22100
22101         detachFromScrollingCoordinator() needs to be public so that it can be 
22102         called from RenderLayerCompositor for fixed nodes.
22103         * rendering/RenderLayerBacking.h:
22104         (RenderLayerBacking):
22105
22106         RenderLayerCompositor takes control of attaching and detaching fixed 
22107         nodes to/from the ScrollingCoordinator. 
22108         * rendering/RenderLayerCompositor.cpp:
22109         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22110         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22111         (WebCore::RenderLayerCompositor::updateBacking):
22112         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22113         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22114         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22115         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22116         (WebCore::isRootmostFixedOrStickyLayer):
22117         (WebCore):
22118         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22119         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22120         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22121         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22122         (WebCore::nearestScrollingCoordinatorAncestor):
22123         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22124         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22125         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22126         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22127         * rendering/RenderLayerCompositor.h:
22128         (WebCore):
22129         (RenderLayerCompositor):
22130
22131 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22132
22133         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22134         https://bugs.webkit.org/show_bug.cgi?id=101258
22135
22136         Reviewed by Dan Bernstein.
22137
22138         * platform/graphics/Font.h:
22139         (WebCore::Font::typesettingFeatures):
22140         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22141         typesetting features instead of recomputing each time a client asks
22142         for them. This makes the class interface easier to use because
22143         "typesettingFeatures()" can appear in more than one expression without
22144         undue performance cost. This may also be a small speedup to code that
22145         calls typesettingFeatures() often for other reasons.
22146
22147         * platform/graphics/Font.cpp:
22148         (WebCore::Font::Font):
22149         (WebCore::Font::operator=):
22150         (WebCore::Font::update): Ditto.
22151
22152         (WebCore::Font::width): Unforked the width() function so all width-related
22153         interfaces can benefit from optimization without duplicate code.
22154
22155 2012-11-05  Peng Huang  <penghuang@google.com>
22156
22157         Webkit does not handle some media keys correctly On Linux gtk platform.
22158         https://bugs.webkit.org/show_bug.cgi?id=101221
22159
22160         Reviewed by Alexey Proskuryakov.
22161
22162         Add media keyboard support on Linux gtk platform.
22163
22164         * platform/chromium/KeyCodeConversionGtk.cpp:
22165         (WebCore::windowsKeyCodeForKeyEvent):
22166
22167 2012-11-05  Glenn Adams  <glenn@skynav.com>
22168
22169         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22170         https://bugs.webkit.org/show_bug.cgi?id=89235
22171
22172         Reviewed by Eric Seidel.
22173
22174         See also wiki documentation at:
22175         [1] http://trac.webkit.org/wiki/LineBreaking
22176         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22177
22178         Web exposed changes include:
22179         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22180         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22181         (3) See [2] above for details regarding interpretation.
22182
22183         Tests: css3/line-break/line-break-auto-centered.html
22184                css3/line-break/line-break-auto-half-kana.html
22185                css3/line-break/line-break-auto-hyphens.html
22186                css3/line-break/line-break-auto-inseparables.html
22187                css3/line-break/line-break-auto-iteration-marks.html
22188                css3/line-break/line-break-auto-postfixes.html
22189                css3/line-break/line-break-auto-prefixes.html
22190                css3/line-break/line-break-auto-sound-marks.html
22191                css3/line-break/line-break-loose-centered.html
22192                css3/line-break/line-break-loose-half-kana.html
22193                css3/line-break/line-break-loose-hyphens.html
22194                css3/line-break/line-break-loose-inseparables.html
22195                css3/line-break/line-break-loose-iteration-marks.html
22196                css3/line-break/line-break-loose-postfixes.html
22197                css3/line-break/line-break-loose-prefixes.html
22198                css3/line-break/line-break-loose-sound-marks.html
22199                css3/line-break/line-break-normal-centered.html
22200                css3/line-break/line-break-normal-half-kana.html
22201                css3/line-break/line-break-normal-hyphens.html
22202                css3/line-break/line-break-normal-inseparables.html
22203                css3/line-break/line-break-normal-iteration-marks.html
22204                css3/line-break/line-break-normal-postfixes.html
22205                css3/line-break/line-break-normal-prefixes.html
22206                css3/line-break/line-break-normal-sound-marks.html
22207                css3/line-break/line-break-strict-centered.html
22208                css3/line-break/line-break-strict-half-kana.html
22209                css3/line-break/line-break-strict-hyphens.html
22210                css3/line-break/line-break-strict-inseparables.html
22211                css3/line-break/line-break-strict-iteration-marks.html
22212                css3/line-break/line-break-strict-postfixes.html
22213                css3/line-break/line-break-strict-prefixes.html
22214                css3/line-break/line-break-strict-sound-marks.html
22215
22216         * platform/text/LineBreakIteratorPoolICU.h:
22217         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22218         Add static function to construct ICU locale argument (also used as pool key) with additional
22219         break keyword.
22220         (WebCore::LineBreakIteratorPool::take):
22221         (WebCore::LineBreakIteratorPool::put):
22222         (LineBreakIteratorPool):
22223         Remove direct dependency from ICU library (and types), moving that dependency into
22224         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22225         Update to take line break mode into account.
22226         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22227         which entails expanding pool entry key format to optionally append "@break=" +
22228         "loose"|"normal"|"strict" keyword to locale string.
22229
22230         * platform/text/TextBreakIterator.h:
22231         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22232         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22233         (WebCore::LazyLineBreakIterator::get):
22234         (WebCore::LazyLineBreakIterator::reset):
22235         (LazyLineBreakIterator):
22236         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22237         Add state member to indicate line break mode.
22238
22239         * platform/text/TextBreakIteratorICU.cpp:
22240         (WebCore::acquireLineBreakIterator):
22241         Use new line break mode when making iterator from pool.
22242         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22243         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22244         (WebCore::releaseLineBreakIterator):
22245         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22246         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22247         (WebCore::isCJKLocale):
22248         New functions for determining if CJK rules apply.
22249         (WebCore::openLineBreakIterator):
22250         New function for abstracting opening of ICU style line break iterator. This is now
22251         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22252         This function also takes into account the line break mode.
22253         (WebCore::closeLineBreakIterator):
22254         (WebCore::mapLineIteratorModeToRules):
22255         New function for abstracting closing of ICU style line break iterator. This is now
22256         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22257
22258         * rendering/RenderBlockLineLayout.cpp:
22259         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22260         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22261         Add looseMode local variable to prevent need for computing under isBreakable().
22262
22263         * rendering/RenderText.cpp:
22264         (WebCore::mapLineBreakToIteratorMode):
22265         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22266         and RenderBlock::LineBreaker::nextLineBreak.
22267         (WebCore::RenderText::computePreferredLogicalWidths):
22268         Ensure (lazy line) breakIterator is initialized for line break mode.
22269         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22270
22271         * rendering/RenderText.h:
22272         (WebCore):
22273         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22274         and RenderBlock::LineBreaker::nextLineBreak.
22275
22276         * rendering/break_lines.cpp:
22277         (WebCore):
22278         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22279         to include loose mode parameter.
22280         (WebCore::isBreakableSpace):
22281         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22282         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22283         (WebCore::needsLineBreakIterator):
22284         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22285         to prevent regression to non loose mode path.
22286         (WebCore::nextBreakablePosition):
22287         (WebCore::nextBreakablePositionIgnoringNBSP):
22288         Use new template parameter enums described above.
22289         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22290         (WebCore::nextBreakablePositionLoose):
22291         Introduce two additional 'loose' mode flavors of NBP template expansions.
22292
22293         * rendering/break_lines.h:
22294         (WebCore):
22295         (WebCore::isBreakable):
22296         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22297         accessor method on each invocation.
22298
22299 2012-11-05  Adam Barth  <abarth@webkit.org>
22300
22301         webkitRegionLayoutUpdate is incorrectly named
22302         https://bugs.webkit.org/show_bug.cgi?id=100335
22303
22304         Reviewed by Ojan Vafai.
22305
22306         DOM event names are supposed to be lower case.
22307
22308         * dom/EventNames.h:
22309         (WebCore):
22310         * dom/WebKitNamedFlow.cpp:
22311         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22312
22313 2012-11-05  Adam Barth  <abarth@webkit.org>
22314
22315         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22316         https://bugs.webkit.org/show_bug.cgi?id=101110
22317
22318         Reviewed by Kentaro Hara.
22319
22320         This patch generalizes our support for storing wrappers in DOM objects
22321         to be usable for more than just nodes. After this patch, any object
22322         with a ScriptWrappable base class will have its wrapper stored inline
22323         in the object in the main world.
22324
22325         To achieve this goal, this patch hides the details of how we map from
22326         objects to wrappers inside DOMDataStore and then removes the
22327         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22328         DOMWrapperMap base class and make all of these functions non-virtual.
22329
22330         * UseV8.cmake:
22331         * WebCore.gypi:
22332             - Remove deleted files.
22333         * bindings/scripts/CodeGeneratorV8.pm:
22334         (GenerateHeader):
22335         (GenerateNormalAttrGetter):
22336         (GenerateConstructorCallback):
22337         (GenerateNamedConstructorCallback):
22338         (GenerateToV8Converters):
22339             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22340               the DOMDataStore to do this work for us.
22341         * bindings/scripts/test/V8/V8Float64Array.h:
22342         (WebCore::V8Float64Array::wrap):
22343         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22344         (WebCore::V8TestActiveDOMObject::wrap):
22345         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22346         (WebCore::V8TestCustomNamedGetter::wrap):
22347         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22348         (WebCore::V8TestEventConstructor::wrap):
22349         * bindings/scripts/test/V8/V8TestEventTarget.h:
22350         (WebCore::V8TestEventTarget::wrap):
22351         * bindings/scripts/test/V8/V8TestException.h:
22352         (WebCore::V8TestException::wrap):
22353         * bindings/scripts/test/V8/V8TestInterface.h:
22354         (WebCore::V8TestInterface::wrap):
22355         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22356         (WebCore::V8TestMediaQueryListListener::wrap):
22357         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22358         (WebCore::V8TestNamedConstructor::wrap):
22359         * bindings/scripts/test/V8/V8TestNode.cpp:
22360         (WebCore::V8TestNode::constructorCallback):
22361         (WebCore::V8TestNode::wrapSlow):
22362         * bindings/scripts/test/V8/V8TestObj.cpp:
22363         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22364         * bindings/scripts/test/V8/V8TestObj.h:
22365         (WebCore::V8TestObj::wrap):
22366         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22367         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22368         * bindings/v8/DOMDataStore.cpp:
22369             - Updated run-bindings-test results.
22370         (WebCore::DOMDataStore::DOMDataStore):
22371         (WebCore::DOMDataStore::~DOMDataStore):
22372             - Simplify constructor and destructor now that there is only one
22373               hash map.
22374         (WebCore::DOMDataStore::current):
22375             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22376               need to handle it here.
22377         (WebCore::DOMDataStore::reportMemoryUsage):
22378             - Simplfied now that there is only one wrapper map.
22379         (WebCore::DOMDataStore::weakCallback):
22380             - Moved from IntrusiveDOMWrapperMap.h
22381         * bindings/v8/DOMDataStore.h:
22382         (WebCore::DOMDataStore::get):
22383         (WebCore::DOMDataStore::set):
22384             - These functions now handle the intrusive case with a branch
22385               rather than with a virtual function call. In many cases, the
22386               branch can be optimized away by the compiler when the overloaded
22387               inline functions are inlined.
22388         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22389             - Overloaded functions to determine whether to store the wrapper
22390               inside the object or in the hashmap.
22391         (WebCore::DOMDataStore::getWrapperFromObject):
22392         (WebCore::DOMDataStore::storeWrapperInObject):
22393             - Overloaded functions to get/set the wrapper from inside the
22394               object itself.
22395         * bindings/v8/DOMWrapperMap.h:
22396         (WebCore::DOMWrapperHashMap::get):
22397         (WebCore::DOMWrapperHashMap::set):
22398         (WebCore::DOMWrapperHashMap::clear):
22399         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22400         (WebCore::DOMWrapperHashMap::remove):
22401             - These functions are no longer virtual.
22402         * bindings/v8/DOMWrapperWorld.h:
22403         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22404         * bindings/v8/ScriptProfiler.cpp:
22405         * bindings/v8/SerializedScriptValue.cpp:
22406         (WebCore::neuterBinding):
22407             - We need to keep the type information slightly longer so that we
22408               look in the right wrapper map.
22409         * bindings/v8/V8DOMMap.cpp: Removed.
22410         * bindings/v8/V8DOMMap.h: Removed.
22411         * bindings/v8/V8DOMWindowShell.cpp:
22412         * bindings/v8/V8DOMWrapper.cpp:
22413         * bindings/v8/V8DOMWrapper.h:
22414         (WebCore::V8DOMWrapper::getCachedWrapper):
22415             - Defer this work to the store.
22416         (WebCore::V8DOMWrapper::setWrapperClass):
22417             - An overloaded function to set the right wrapper class.
22418         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22419             - This function is now general enough to handle ever kind of object.
22420         * bindings/v8/V8GCController.cpp:
22421         * bindings/v8/V8NPObject.cpp:
22422         * bindings/v8/WorkerContextExecutionProxy.cpp:
22423         * bindings/v8/WorkerScriptController.cpp:
22424         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22425         (WebCore::v8HTMLImageElementConstructorCallback):
22426             - Call the more general function (instead of the now-deleted specialized function).
22427
22428 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22429
22430         Get rid of setCookieStoragePrivateBrowsingEnabled.
22431         https://bugs.webkit.org/show_bug.cgi?id=101247
22432
22433         Reviewed by Brady Eidson.
22434
22435         We were only doing anything here on Mac, and only because we couldn't know if
22436         sessions were in use. But sessions are always in use, and those obsolete changing
22437         cookie storage explicitly.
22438
22439         * platform/network/win/CookieStorageWin.cpp: Removed.
22440         * PlatformWinCE.cmake:
22441         * WebCore.gypi:
22442         No more CookieStorageWin.cpp with an empty implementation.
22443     
22444         * WebCore.exp.in:
22445         * platform/mac/WebCoreSystemInterface.h:
22446         * platform/mac/WebCoreSystemInterface.mm:
22447         We no longer need this WKSI function.
22448
22449         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22450         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22451
22452         * platform/network/CookieStorage.h:
22453         * platform/network/cf/CookieStorageCFNet.cpp:
22454         * platform/network/curl/CookieJarCurl.cpp:
22455         * platform/network/soup/CookieStorageSoup.cpp:
22456         * platform/qt/TemporaryLinkStubsQt.cpp:
22457         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22458
22459         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22460         that we should observe private storage while in private browsing mode. I don't think
22461         that it was correct - Safari doesn't display content of private storage, and thus
22462         doesn't need to know about changes.
22463         The removal of this function has an effect on WebKit1 clients that enable private
22464         browsing. We used to globally change cookie storage, even for loads not initiated
22465         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22466         will not store information about sites the user visits."
22467
22468 2012-11-05  Florin Malita  <fmalita@chromium.org>
22469
22470         Crash when mixing layers, foreignObjects and SVG hidden containers
22471         https://bugs.webkit.org/show_bug.cgi?id=87297
22472
22473         Reviewed by Dirk Schulze.
22474
22475         Foreign objects may introduce content which requires layers, but layer creation is
22476         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22477         tree state. This patch prevents foreignObject renderer instantiation under
22478         RenderSVGHiddenContainers.
22479
22480         Test: svg/foreignObject/foreign-object-defs-crash.svg
22481
22482         * svg/SVGForeignObjectElement.cpp:
22483         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22484         (WebCore):
22485         * svg/SVGForeignObjectElement.h:
22486         (SVGForeignObjectElement):
22487
22488 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22489
22490         Remove the unused m_fixedPositionedElements from RenderView
22491         https://bugs.webkit.org/show_bug.cgi?id=101251
22492
22493         Reviewed by Anders Carlsson.
22494
22495         m_fixedPositionedElements was completely unused. Remove it
22496         and the related typedef.
22497
22498         * rendering/RenderView.h:
22499         (RenderView):
22500
22501 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22502
22503         Fix layer borders to cleaning appear and disappear on switching
22504         https://bugs.webkit.org/show_bug.cgi?id=101136
22505
22506         Reviewed by Sam Weinig.
22507
22508         GraphicsLayers decided whether to show layer borders based
22509         on a callback through the GraphicsLayerClient. This made it
22510         hard to manage state, resulting in a failure to cleanly
22511         hide layers when toggled off via the preference.
22512         
22513         Changed the layer border and repaint counter visibility to be bits
22514         stored on GraphicsLayer just like other properties, with getters
22515         and setters. RenderLayerBacking now updates these debug
22516         indicators when we update other compositing layer properties.
22517         
22518         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22519         in several places by setting the change flag DebugIndicatorsChanged
22520         for properties whose values affect the appearance of the debug border.
22521
22522         Removed the GraphicsLayerClient methods showDebugBorders() and
22523         showRepaintCounter() which are no longer required.
22524
22525         * platform/graphics/GraphicsLayer.cpp:
22526         (WebCore::GraphicsLayer::GraphicsLayer):
22527         (WebCore::GraphicsLayer::updateDebugIndicators):
22528         * platform/graphics/GraphicsLayer.h:
22529         (WebCore::GraphicsLayer::setShowDebugBorder):
22530         (WebCore::GraphicsLayer::isShowingDebugBorder):
22531         (WebCore::GraphicsLayer::setShowRepaintCounter):
22532         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22533         (WebCore::GraphicsLayer::repaintCount):
22534         (WebCore::GraphicsLayer::incrementRepaintCount):
22535         * platform/graphics/GraphicsLayerClient.h:
22536         * platform/graphics/ca/GraphicsLayerCA.cpp:
22537         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22538         (WebCore::GraphicsLayerCA::setMasksToBounds):
22539         (WebCore::GraphicsLayerCA::setDrawsContent):
22540         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22541         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22542         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22543         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22544         (WebCore::GraphicsLayerCA::updateDebugBorder):
22545         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22546         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22547         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22548         (WebCore::GraphicsLayerCA::setupContentsLayer):
22549         (WebCore::GraphicsLayerCA::cloneLayer):
22550         * platform/graphics/ca/GraphicsLayerCA.h:
22551         (GraphicsLayerCA):
22552         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22553         * rendering/RenderLayerBacking.cpp:
22554         (WebCore::RenderLayerBacking::updateDebugIndicators):
22555         * rendering/RenderLayerBacking.h:
22556         (RenderLayerBacking):
22557         * rendering/RenderLayerCompositor.cpp:
22558         (WebCore::RenderLayerCompositor::updateBacking):
22559         * rendering/RenderLayerCompositor.h:
22560         (RenderLayerCompositor):
22561
22562 2012-11-05  Genevieve Mak  <gmak@rim.com>
22563
22564         [BLACKBERRY] Update touch code to reflect touch refactor
22565         https://bugs.webkit.org/show_bug.cgi?id=101227
22566
22567         Reviewed by Rob Buis.
22568
22569         PR #2706785
22570         Reviewed Internally by: Mike Lattanzio
22571
22572         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22573         (WebCore::touchEventType):
22574         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22575
22576 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22577
22578         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22579         https://bugs.webkit.org/show_bug.cgi?id=99083
22580
22581         Reviewed by Stephen White.
22582
22583         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22584
22585         No new tests needed. This patch does not change anything functionally.
22586
22587         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22588         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22589         (WebCore::GraphicsLayerChromium::paint):
22590         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22591         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22592         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22593         (OpaqueRectTrackingContentLayerDelegate):
22594
22595 2012-11-05  Stephen White  <senorblanco@chromium.org>
22596
22597         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22598         Removed a deleted file.  Unreviewed.
22599
22600         * WebCore.gypi:
22601
22602 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22603
22604         [V8] toV8(impl) should return null if impl is 0
22605         https://bugs.webkit.org/show_bug.cgi?id=101206
22606
22607         Reviewed by Adam Barth.
22608
22609         toV8(impl) should return null if impl is 0. However,
22610         V8HTMLCollection::toV8() does not have the null check.
22611         All other toV8()s return null.
22612
22613         No tests. I think there will be no call path that hits the change.
22614
22615         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22616         (WebCore::toV8):
22617
22618 2012-11-05  David Barton  <dbarton@mathscribe.com>
22619
22620         Implement SimpleFontData::platformBoundsForGlyph on skia
22621         https://bugs.webkit.org/show_bug.cgi?id=101115
22622
22623         Reviewed by Eric Seidel.
22624
22625         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22626
22627         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22628
22629         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22630         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22631
22632 2012-11-05  Andreas Kling  <kling@webkit.org>
22633
22634         Decouple Attr logic from ElementAttributeData.
22635         <http://webkit.org/b/101126>
22636
22637         Reviewed by Antti Koivisto.
22638
22639         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22640         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22641         can be shared by any number of Elements at a given time.
22642
22643         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22644         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22645
22646         * dom/Element.h:
22647         * dom/ElementAttributeData.h:
22648         * dom/Element.cpp:
22649         (WebCore::attrNodeListMap):
22650         (WebCore::attrNodeListForElement):
22651         (WebCore::ensureAttrNodeListForElement):
22652         (WebCore::removeAttrNodeListForElement):
22653         (WebCore::findAttrNodeInList):
22654         (WebCore::Element::~Element):
22655         (WebCore::Element::detachAttribute):
22656         (WebCore::Element::setAttributeNode):
22657         (WebCore::Element::removeAttributeInternal):
22658         (WebCore::Element::getAttributeNode):
22659         (WebCore::Element::getAttributeNodeNS):
22660         (WebCore::Element::normalizeAttributes):
22661         (WebCore::Element::attrIfExists):
22662         (WebCore::Element::ensureAttr):
22663         (WebCore::Element::detachAttrNodeFromElementWithValue):
22664         (WebCore::Element::detachAllAttrNodesFromElement):
22665         (WebCore::Element::cloneAttributesFromElement):
22666
22667             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22668             conditions that are no longer needed as they used to depend on having an attributeData().
22669
22670         * dom/Node.h:
22671         (WebCore::Node::hasSyntheticAttrChildNodes):
22672         (WebCore::Node::setHasSyntheticAttrChildNodes):
22673
22674             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22675
22676         * dom/Attr.cpp:
22677         (WebCore::Attr::detachFromElementWithValue):
22678
22679             Remove awkward indirection and let the call site deal with removing the Attr node from
22680             the Element's list of Attr nodes.
22681
22682         * dom/ElementAttributeData.cpp:
22683         (WebCore::ElementAttributeData::clearAttributes):
22684
22685             Remove now-unused Element* argument.
22686
22687 2012-11-05  Hans Muller  <hmuller@adobe.com>
22688
22689         [CSS Exclusions] Polygon edges should span colinear vertices
22690         https://bugs.webkit.org/show_bug.cgi?id=99343
22691
22692         Reviewed by Dirk Schulze.
22693
22694         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22695         pairs of vertices are only considered coincident if their coordinates are exactly
22696         equal. Similarly, a vertex is only considered collinear with an edge if the area
22697         of the triangle defined by the three vertices is exactly zero.  In the future it
22698         may be useful to relax the comparison with zero.
22699
22700         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22701                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22702
22703         * rendering/ExclusionPolygon.cpp:
22704         (WebCore::determinant): Used to measure collinearity.
22705         (WebCore):
22706         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22707         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22708         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22709         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22710         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22711         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22712
22713 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22714
22715         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22716         https://bugs.webkit.org/show_bug.cgi?id=101228
22717
22718         Reviewed by Kenneth Rohde Christiansen.
22719
22720         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22721         and reuse the POSIX one since it is pretty much the same.
22722
22723         No new tests, no behavior change.
22724
22725         * PlatformEfl.cmake:
22726         * platform/efl/SharedBufferEfl.cpp: Removed.
22727
22728 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22729
22730         Add a comment about a return value of IDBKey::toV8()
22731         https://bugs.webkit.org/show_bug.cgi?id=101212
22732
22733         Reviewed by Adam Barth.
22734
22735         Although all other toV8(impl) return null when impl is 0,
22736         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22737         This patch adds a comment about it.
22738
22739         No tests.
22740
22741         * bindings/js/JSIDBKeyCustom.cpp:
22742         (WebCore::toJS):
22743         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22744         (WebCore::toV8):
22745
22746 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22747
22748         [Cairo] Make Cairo honor image orientation
22749         https://bugs.webkit.org/show_bug.cgi?id=101207
22750
22751         Reviewed by Kenneth Rohde Christiansen.
22752
22753         Implement transformed image drawing in BitmapImageCairo, similar
22754         as it was done for Skia in bug 100179, r132384.
22755         The image drawing code needs to transform the graphics context
22756         depending on exif orientation in order for this to work.
22757
22758         No new tests, covered by fast/images/exif-* which are passing now.
22759
22760         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22761         * platform/graphics/cairo/BitmapImageCairo.cpp:
22762         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22763         (WebCore):
22764
22765 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22766
22767         [V8] Dispose() and Clear() should be always coupled for safety
22768         https://bugs.webkit.org/show_bug.cgi?id=101191
22769
22770         Reviewed by Adam Barth.
22771
22772         Clear() is not mandatory. However, to avoid misusing already
22773         disposed wrappers, Clear() should be always called just
22774         after Dispose().
22775
22776         No tests. No change in behavior.
22777
22778         * bindings/v8/DOMWrapperMap.h:
22779         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22780         * bindings/v8/IntrusiveDOMWrapperMap.h:
22781         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22782         * bindings/v8/NPV8Object.cpp:
22783         (WebCore::freeV8NPObject):
22784         * bindings/v8/ScheduledAction.cpp:
22785         (WebCore::ScheduledAction::~ScheduledAction):
22786         * bindings/v8/V8NPObject.cpp:
22787         (WebCore::V8NPTemplateMap::dispose):
22788         (WebCore::weakNPObjectCallback):
22789         (WebCore::forgetV8ObjectForNPObject):
22790         * bindings/v8/V8PerContextData.cpp:
22791         (WebCore::V8PerContextData::dispose):
22792         * bindings/v8/V8ValueCache.cpp:
22793         (WebCore::cachedStringCallback):
22794         (WebCore::IntegerCache::~IntegerCache):
22795         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22796         (WebCore::WeakReferenceCallback):
22797
22798 2012-11-05  Hans Muller  <hmuller@adobe.com>
22799
22800         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22801         https://bugs.webkit.org/show_bug.cgi?id=100996
22802
22803         Reviewed by Dirk Schulze.
22804
22805         Made the conversion from floating point top/bottom logical shape bounds coordinates
22806         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22807         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22808         that the LayoutUnit value is within the shape.
22809         
22810         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22811
22812         * rendering/ExclusionShapeInsideInfo.h:
22813         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22814         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22815         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22816         (ExclusionShapeInsideInfo):
22817         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22818         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22819
22820 2012-11-05  Antti Koivisto  <antti@apple.com>
22821
22822         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22823         https://bugs.webkit.org/show_bug.cgi?id=101211
22824
22825         Reviewed by Andreas Kling.
22826         
22827         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22828         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22829         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22830         
22831         Speculative fix, no repro, no obvious way to construct a test.
22832
22833         * loader/cache/MemoryCache.cpp:
22834         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22835         
22836             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22837             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22838             if has (as it may die when CachedResourceHandle releases it).
22839             The 'current' pointer is not protected as the resource it points to is allowed to die.
22840             
22841 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22842
22843         Web Inspector: Fix jscompiler cast syntax
22844         https://bugs.webkit.org/show_bug.cgi?id=101066
22845
22846         Reviewed by Pavel Feldman.
22847
22848         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22849
22850         * inspector/InjectedScriptCanvasModuleSource.js:
22851         (.):
22852         * inspector/InjectedScriptSource.js:
22853         (.):
22854         * inspector/front-end/ApplicationCacheModel.js:
22855         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22856         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22857         * inspector/front-end/AuditLauncherView.js:
22858         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22859         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22860         * inspector/front-end/BreakpointManager.js:
22861         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22862         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22863         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22864         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22865         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22866         (WebInspector.BreakpointManager.Storage):
22867         * inspector/front-end/BreakpointsSidebarPane.js:
22868         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22869         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22870         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22871         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22872         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22873         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22874         * inspector/front-end/CSSSelectorProfileView.js:
22875         (WebInspector.CSSProfileHeader.prototype.createView):
22876         * inspector/front-end/CSSStyleModel.js:
22877         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22878         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22879         * inspector/front-end/CompilerScriptMapping.js:
22880         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22881         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22882         * inspector/front-end/ConsoleView.js:
22883         (WebInspector.ConsoleView.prototype._frameAdded):
22884         (WebInspector.ConsoleView.prototype._frameRemoved):
22885         * inspector/front-end/DOMAgent.js:
22886         (WebInspector.DOMDocument):
22887         * inspector/front-end/DebuggerModel.js:
22888         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22889         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22890         (WebInspector.DebuggerModel.prototype.):
22891         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22892         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22893         * inspector/front-end/DebuggerScriptMapping.js:
22894         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22895         * inspector/front-end/DirectoryContentView.js:
22896         (WebInspector.DirectoryContentView.prototype._sort):
22897         * inspector/front-end/ElementsPanel.js:
22898         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22899         * inspector/front-end/ElementsPanelDescriptor.js:
22900         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22901         * inspector/front-end/ElementsTreeOutline.js:
22902         (.get node):
22903         * inspector/front-end/ExtensionServer.js:
22904         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22905         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22906         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22907         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22908         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22909         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22910         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22911         * inspector/front-end/FileContentView.js:
22912         (WebInspector.FileContentView.prototype._metadataReceived):
22913         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22914         * inspector/front-end/FileSystemModel.js:
22915         (WebInspector.FileSystemModel.prototype._frameAdded):
22916         (WebInspector.FileSystemModel.prototype._frameNavigated):
22917         (WebInspector.FileSystemModel.prototype._frameDetached):
22918         * inspector/front-end/FileSystemView.js:
22919         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22920         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22921         * inspector/front-end/HandlerRegistry.js:
22922         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22923         * inspector/front-end/HeapSnapshotLoader.js:
22924         (WebInspector.HeapSnapshotLoader.prototype.write):
22925         * inspector/front-end/HeapSnapshotView.js:
22926         (WebInspector.HeapSnapshotView.prototype._changeBase):
22927         (WebInspector.HeapProfileHeader.prototype.load):
22928         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22929         * inspector/front-end/IndexedDBModel.js:
22930         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22931         (WebInspector.IndexedDBModel.prototype._frameDetached):
22932         * inspector/front-end/IndexedDBViews.js:
22933         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22934         * inspector/front-end/JavaScriptSourceFrame.js:
22935         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22936         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22937         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22938         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22939         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22940         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22941         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22942         * inspector/front-end/MemoryStatistics.js:
22943         (WebInspector.MemoryStatistics.prototype.show):
22944         * inspector/front-end/NavigatorView.js:
22945         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22946         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22947         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22948         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22949         * inspector/front-end/NetworkLog.js:
22950         (WebInspector.NetworkLog.prototype._onRequestStarted):
22951         * inspector/front-end/NetworkManager.js:
22952         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22953         * inspector/front-end/NetworkPanel.js:
22954         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22955         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22956         (WebInspector.NetworkPanel.prototype.reveal):
22957         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22958         * inspector/front-end/NetworkUISourceCodeProvider.js:
22959         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22960         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
22961         * inspector/front-end/ObjectPopoverHelper.js:
22962         (WebInspector.ObjectPopoverHelper.prototype.):
22963         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
22964         * inspector/front-end/PresentationConsoleMessageHelper.js:
22965         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
22966         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
22967         * inspector/front-end/ProfilesPanel.js:
22968         * inspector/front-end/ResourceScriptMapping.js:
22969         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
22970         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
22971         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
22972         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
22973         * inspector/front-end/ResourceTreeModel.js:
22974         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
22975         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
22976         * inspector/front-end/ResourcesPanel.js:
22977         (WebInspector.ResourcesPanel.prototype._databaseAdded):
22978         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
22979         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
22980         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
22981         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
22982         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
22983         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
22984         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
22985         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
22986         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
22987         * inspector/front-end/RevisionHistoryView.js:
22988         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
22989         * inspector/front-end/SASSSourceMapping.js:
22990         (rawLocationToUILocation):
22991         * inspector/front-end/ScopeChainSidebarPane.js:
22992         (WebInspector.ScopeChainSidebarPane.prototype.update):
22993         * inspector/front-end/Script.js:
22994         (WebInspector.Script.Location.prototype.uiLocation):
22995         * inspector/front-end/ScriptFormatter.js:
22996         (WebInspector.ScriptFormatter.prototype.get _worker):
22997         * inspector/front-end/ScriptsPanel.js:
22998         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
22999         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
23000         (WebInspector.ScriptsPanel.prototype._editorClosed):
23001         (WebInspector.ScriptsPanel.prototype._editorSelected):
23002         (WebInspector.ScriptsPanel.prototype._scriptSelected):
23003         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
23004         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
23005         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
23006         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
23007         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
23008         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
23009         * inspector/front-end/ScriptsPanelDescriptor.js:
23010         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
23011         * inspector/front-end/StylesSourceMapping.js:
23012         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
23013         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
23014         * inspector/front-end/TabbedEditorContainer.js:
23015         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
23016         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
23017         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
23018         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
23019         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
23020         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
23021         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
23022         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
23023         * inspector/front-end/TimelineModel.js:
23024         (WebInspector.TimelineModelLoader.prototype.write):
23025         * inspector/front-end/UISourceCodeFrame.js:
23026         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
23027         * inspector/front-end/Workspace.js:
23028         (WebInspector.WorkspaceController.prototype._frameAdded):
23029         (WebInspector.Project.prototype._fileAdded):
23030         (WebInspector.Project.prototype._fileRemoved):
23031
23032 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
23033
23034         Web Inspector: render message bubbles in CodeMirror experiment.
23035         https://bugs.webkit.org/show_bug.cgi?id=101164
23036
23037         Reviewed by Vsevolod Vlasov.
23038
23039         It sounds like addLineWidget just makes it happen.
23040
23041         * inspector/front-end/CodeMirrorTextEditor.js:
23042         (WebInspector.CodeMirrorTextEditor):
23043         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
23044         (WebInspector.CodeMirrorTextEditor.prototype.get if):
23045         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
23046         (WebInspector.CodeMirrorTextEditor.prototype._change):
23047         * inspector/front-end/DefaultTextEditor.js:
23048         (.preventDefaultOnMouseUp):
23049         * inspector/front-end/PresentationConsoleMessageHelper.js:
23050         (WebInspector.PresentationConsoleMessageHelper):
23051         * inspector/front-end/cm/cmdevtools.css:
23052         (.CodeMirror .webkit-html-message-bubble):
23053         (.CodeMirror .webkit-html-message-bubble img):
23054         (.CodeMirror .webkit-html-warning-message):
23055         (.CodeMirror .webkit-html-error-message):
23056
23057 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
23058
23059         Validate CSS Device Adaptation properties and resolve shorthands
23060         https://bugs.webkit.org/show_bug.cgi?id=95962
23061
23062         Reviewed by Alexis Menard.
23063
23064         Add the missing keywords and properties for the viewport at-rule.
23065         Note that we have to mark that we are inside a viewport scope because
23066         some properties are not validated as they would be inside a style
23067         rule. As an example, the semantics of CSSPropertyWidth are completely
23068         different: on a viewport rule, it stands for a shorthand for the
23069         minimum and maximum width.
23070
23071         Test: css3/device-adapt/viewport-properties-validation.html
23072
23073         * css/CSSComputedStyleDeclaration.cpp:
23074         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
23075         * css/CSSParser.cpp:
23076         (WebCore::CSSParser::parseValue):
23077         (WebCore):
23078         (WebCore::CSSParser::parseViewportProperty):
23079         (WebCore::CSSParser::parseViewportShorthand):
23080         * css/CSSParser.h:
23081         * css/CSSProperty.cpp:
23082         (WebCore::CSSProperty::isInheritedProperty):
23083         * css/CSSPropertyNames.in:
23084         * css/CSSValueKeywords.in:
23085
23086 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
23087
23088         Unreviewed, rolling out r133286, r133385, and r133394.
23089         http://trac.webkit.org/changeset/133286
23090         http://trac.webkit.org/changeset/133385
23091         http://trac.webkit.org/changeset/133394
23092         https://bugs.webkit.org/show_bug.cgi?id=101198
23093
23094         Broke image placement on some web sites. (Requested by kling
23095         on #webkit).
23096
23097         * css/StyleResolver.cpp:
23098         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23099         (WebCore::StyleResolver::matchAllRules):
23100         (WebCore::StyleResolver::canShareStyleWithElement):
23101         * dom/Attr.cpp:
23102         (WebCore::Attr::detachFromElementWithValue):
23103         * dom/Element.cpp:
23104         (WebCore::Element::~Element):
23105         (WebCore::Element::detachAttribute):
23106         (WebCore::Element::getAttribute):
23107         (WebCore::Element::setAttributeNode):
23108         (WebCore::Element::removeAttributeInternal):
23109         (WebCore::Element::getAttributeNode):
23110         (WebCore::Element::getAttributeNodeNS):
23111         (WebCore::Element::normalizeAttributes):
23112         (WebCore::Element::attrIfExists):
23113         (WebCore::Element::ensureAttr):
23114         (WebCore::Element::cloneAttributesFromElement):
23115         * dom/Element.h:
23116         (Element):
23117         (WebCore::Element::updateInvalidAttributes):
23118         * dom/ElementAttributeData.cpp:
23119         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23120         (WebCore):
23121         (WebCore::attrListMap):
23122         (WebCore::attrListForElement):
23123         (WebCore::ensureAttrListForElement):
23124         (WebCore::removeAttrListForElement):
23125         (WebCore::findAttrInList):
23126         (WebCore::ElementAttributeData::attrIfExists):
23127         (WebCore::ElementAttributeData::ensureAttr):
23128         (WebCore::ElementAttributeData::setAttr):
23129         (WebCore::ElementAttributeData::removeAttr):
23130         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23131         (WebCore::ElementAttributeData::reportMemoryUsage):
23132         (WebCore::ElementAttributeData::cloneDataFrom):
23133         (WebCore::ElementAttributeData::clearAttributes):
23134         (WebCore::ElementAttributeData::getAttributeNode):
23135         * dom/ElementAttributeData.h:
23136         (WebCore):
23137         (WebCore::ElementAttributeData::attributeStyle):
23138         (WebCore::ElementAttributeData::setAttributeStyle):
23139         (ElementAttributeData):
23140         (WebCore::ElementAttributeData::ElementAttributeData):
23141         * dom/Node.h:
23142         (WebCore):
23143         (WebCore::Node::hasAttrList):
23144         (WebCore::Node::attributeStyleDirty):
23145         (WebCore::Node::setAttributeStyleDirty):
23146         (WebCore::Node::clearAttributeStyleDirty):
23147         (Node):
23148         (WebCore::Node::setHasAttrList):
23149         (WebCore::Node::clearHasAttrList):
23150         (WebCore::Node::isStyleAttributeValid):
23151         (WebCore::Node::setIsStyleAttributeValid):
23152         (WebCore::Node::clearIsStyleAttributeValid):
23153         * dom/StyledElement.cpp:
23154         (WebCore::StyledElement::updateStyleAttribute):
23155         (WebCore::StyledElement::attributeChanged):
23156         (WebCore::StyledElement::styleAttributeChanged):
23157         (WebCore::StyledElement::inlineStyleChanged):
23158         (WebCore::StyledElement::updateAttributeStyle):
23159         * dom/StyledElement.h:
23160         (StyledElement):
23161         (WebCore::StyledElement::invalidateStyleAttribute):
23162         (WebCore::StyledElement::attributeStyle):
23163         * inspector/InspectorCSSAgent.cpp:
23164         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23165
23166 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23167
23168         Unreviewed trivial Qt build fix.
23169
23170         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23171         builds.
23172
23173         * platform/graphics/qt/GraphicsContextQt.cpp:
23174         * platform/graphics/qt/ImageQt.cpp:
23175
23176 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23177
23178         [Shadow] ShadowRoot type is not set correctly.
23179         https://bugs.webkit.org/show_bug.cgi?id=101188
23180
23181         Reviewed by Hajime Morita.
23182
23183         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23184
23185         Test: fast/dom/shadow/shadowroot-type.html
23186
23187         * dom/ShadowRoot.cpp:
23188         (WebCore::ShadowRoot::create):
23189         * testing/Internals.cpp:
23190         (WebCore::Internals::shadowRootType):
23191         (WebCore):
23192         * testing/Internals.h:
23193         (Internals):
23194         * testing/Internals.idl:
23195
23196 2012-11-05  Kent Tamura  <tkent@chromium.org>
23197
23198         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23199         https://bugs.webkit.org/show_bug.cgi?id=101038
23200
23201         Reviewed by Hajime Morita.
23202
23203         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23204         It means that date/time input elements without
23205         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23206         DOMActivate event.
23207
23208         This patch doesn't change behavior yet because Chromimum-Android port
23209         intercepts user events and doesn't deliver them to date/time input
23210         elements. <http://crbug.com/159381>
23211
23212         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23213         Add DateTimeChooserClient behavior. The code is similar to
23214         PickerIndicatorElement.
23215         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23216         Closes DateTimeChooser.
23217         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23218         Open DateTimeChooser if
23219          - The element is not disabled,
23220          - The element is not read-only,
23221          - The element has a renderer,
23222          - This event is created by a user gesture, and
23223          - The element has no DateTimeChooser.
23224         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23225         Closes DateTimeChooser.
23226         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23227         Set a string value coming from a chooser to the input element.
23228         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23229         Clear m_dateTimeChooser when the chooser was closed.
23230         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23231         Requests to close the chooser.
23232         * html/BaseChooserOnlyDateAndTimeInputType.h:
23233         (BaseChooserOnlyDateAndTimeInputType):
23234          - Implement DateTimeChooserClient
23235          - Add closeDateTimeChooser helper function.
23236          - Add detach override.
23237          - Add m_dateTimeChooser.
23238         * html/HTMLInputElement.cpp:
23239         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23240         Added. The code is moved from PickerIndicatorElement.cpp in order to
23241         share it with BaseChooserOnlyDateAndTimeInputType.
23242         * html/HTMLInputElement.h:
23243         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23244         * html/shadow/PickerIndicatorElement.cpp:
23245         (WebCore::PickerIndicatorElement::openPopup):
23246         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23247
23248 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23249
23250         Fix the collapsing border code to handle mixed directionality at the row level
23251         https://bugs.webkit.org/show_bug.cgi?id=101060
23252
23253         Reviewed by Ojan Vafai.
23254
23255         After bug 87900, we support mixed directionality at the row-group level. For coherency
23256         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23257         below the row-group. This change relaxes the restriction and patches the collapsing
23258         borders code to query the right style and border.
23259
23260         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23261                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23262
23263         * rendering/RenderTable.cpp:
23264         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23265         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23266         Changed to query the row's direction.
23267
23268         * rendering/RenderTableCell.cpp:
23269         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23270         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23271         Added 2 helper functions. They determine if a specific cell's border
23272         adjoins the table. This code is required as the last cell's end border
23273         can be resolved against the start border.
23274
23275         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23276         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23277         Updated these functions now that being the start / end column doesn't mean
23278         that we have to resolve against the row / row-group / table's border.
23279
23280         * rendering/RenderTableCell.h:
23281         (WebCore::RenderTableCell::styleForCellFlow):
23282         Updated to return the row's style.
23283
23284         * rendering/RenderTableRow.cpp:
23285         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23286         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23287         * rendering/RenderTableSection.cpp:
23288         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23289         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23290         Updated these functions to work with mixed directionality.
23291
23292         * rendering/RenderTableSection.cpp:
23293         (WebCore::RenderTableSection::setLogicalPositionForCell):
23294         Changed this function to use the section's direction. This is wrong and should be changed
23295         once we properly fix the collapsing border code.
23296
23297         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23298         Added a FIXME.
23299
23300         * rendering/style/CollapsedBorderValue.h:
23301         (WebCore::CollapsedBorderValue::width):
23302         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23303         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23304         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23305
23306 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23307
23308         Web Inspector: [Canvas] do not blow up the capturing log
23309         https://bugs.webkit.org/show_bug.cgi?id=100752
23310
23311         Reviewed by Pavel Feldman.
23312
23313         Clear obsolete calls in the canvas 2D capturing log in runtime.
23314         Now we store in the log only minimum number of calls that are necessary to replay a
23315         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23316         longer contribute to the final context state and remove them.
23317         These are the rules according which we find and remove such calls:
23318         - all PATH methods between a clip() call and beginPath() call can be removed
23319         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23320         - all consecutive save() + restore() calls
23321
23322         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23323                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23324
23325         * inspector/InjectedScriptCanvasModuleSource.js:
23326         (.):
23327
23328 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23329
23330         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23331         https://bugs.webkit.org/show_bug.cgi?id=101178
23332
23333         Reviewed by Hajime Morita.
23334
23335         When we style PseudoCustomElement, we have to know ShadowRootType.
23336         We would like to expose a method to get ShadowRootType also in Release mode.
23337
23338         This is a preparation patch for Bug 101170.
23339
23340         * dom/ShadowRoot.h:
23341         (ShadowRoot):
23342
23343 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23344
23345         Introduce Month class to calendar picker
23346         https://bugs.webkit.org/show_bug.cgi?id=101024
23347
23348         Reviewed by Kent Tamura.
23349
23350         Month class needs to be introduced to implement a month picker. This
23351         patch just introduces the Month class into the calendar picker without
23352         changing the current behavior.
23353
23354         No new tests. Covered by existing calendar-picker-*.html tests.
23355
23356         * Resources/pagepopups/calendarPicker.js:
23357         (Month.prototype.toLocaleString): Returns a localized month string.
23358         (Month): Takes a Month object, number representing the month, or year and month numbers.
23359         (Month.parse): Returns a new Month from an ISO month string.
23360         (Month.createFromDate): Returns a new Month containing the given datetime.
23361         (Month.prototype.equals): Returns true if the given month is the same.
23362         (Month.prototype.previous): Returns the previous month.
23363         (Month.prototype.next): Returns the next month.
23364         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23365         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23366         (Month.prototype.valueOf): Returns a number representing the month.
23367         (Month.prototype.toString): Returns an ISO month string.
23368         (YearMonthController): Use Month object.
23369         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23370         (YearMonthController.prototype.setMonth): Take a month object.
23371         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23372         (YearMonthController.prototype._handleYearMonthChange):
23373         (YearMonthController.prototype.moveRelatively):
23374         (DaysTable): Use Month object.
23375         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23376         (DaysTable.prototype._navigateToMonth): Take a month object.
23377         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23378         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23379         (DaysTable.prototype.selectDate):
23380         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23381         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23382
23383 2012-11-04  Halton Huo  <halton.huo@intel.com>
23384
23385         [EFL] Use _LIBRARIES instead of _LIBRARY
23386         https://bugs.webkit.org/show_bug.cgi?id=101042
23387
23388         Reviewed by Gyuyoung Kim.
23389
23390         In CMake Find files, _LIBRARY is intended for internal use, should
23391         use _LIBRARIES instead.
23392
23393         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23394
23395 2012-11-04  MORITA Hajime  <morrita@google.com>
23396
23397         Shadow DOM should be able to be disabled per context.
23398         https://bugs.webkit.org/show_bug.cgi?id=101173
23399
23400         Reviewed by Dimitri Glazkov.
23401
23402         This change pulls back relevant bits from r131549. Note that if
23403         the the port enables runtime Shadow DOM flag, this can cause slow
23404         down on some Chromium page cycler test cases (which r131549
23405         attempted to fix).
23406
23407         This change is temporal and the flags should be switched back from
23408         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23409         stability.
23410
23411         * dom/ContextFeatures.cpp:
23412         (WebCore::ContextFeatures::shadowDOMEnabled):
23413         (WebCore):
23414         * dom/ContextFeatures.h:
23415         * dom/Position.cpp:
23416         (WebCore::Position::Position):
23417         (WebCore::Position::findParent):
23418         * dom/TreeScope.cpp:
23419         (WebCore::TreeScope::getSelection):
23420         * html/HTMLTagNames.in:
23421         * html/shadow/HTMLContentElement.cpp:
23422         (WebCore::HTMLContentElement::contentTagName):
23423         * page/DOMWindow.idl:
23424
23425 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23426
23427         [Shadow] Implement custom pseudo-elements styling
23428         https://bugs.webkit.org/show_bug.cgi?id=100812
23429
23430         Reviewed by Hajime Morita.
23431
23432         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23433
23434         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23435         and use pseudo()/setPseudo() instead (Bug 101171).
23436
23437         Test: fast/dom/shadow/styling-pseudo-attribute.html
23438
23439         * dom/Element.cpp:
23440         (WebCore::Element::shadowPseudoId):
23441         (WebCore::Element::setShadowPseudoId):
23442         * dom/ElementRareData.cpp:
23443         (WebCore::ElementRareData::reportMemoryUsage):
23444         * dom/ElementRareData.h:
23445         (ElementRareData):
23446
23447 2012-11-04  Kent Tamura  <tkent@chromium.org>
23448
23449         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23450         https://bugs.webkit.org/show_bug.cgi?id=101039
23451
23452         Reviewed by Hajime Morita.
23453
23454         Add BaseClickableWithKeyInputType behavior to
23455         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23456         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23457         pressing space or enter key. They're going to open a date/time chooser
23458         by DOMActive event.
23459
23460         Because BaseChooserOnlyDateAndTimeInputType inherits from
23461         BaseDateAndTimeInputType, it can't inherit
23462         BaseClickableWithKeyInputType. So, this patch adds static helper
23463         functions to BaseClickableWithKeyInputType, and
23464         BaseChooserOnlyDateAndTimeInputType uses them.
23465
23466         This patch doesn't change behavior yet because Chromimum-Android port
23467         intercepts user events and doesn't deliver them to date/time input
23468         elements.
23469
23470         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23471         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23472         Add an empty implementation with a FIXME comment.
23473         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23474         Add BaseClickableWithKeyInputType behavior by a helper function.
23475         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23476         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23477         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23478         * html/BaseChooserOnlyDateAndTimeInputType.h:
23479         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23480         * html/BaseClickableWithKeyInputType.cpp:
23481         Add static helper functions, and existing member functions use them.
23482         * html/BaseClickableWithKeyInputType.h:
23483         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23484         * html/InputType.h:
23485         (InputType): Make dispatchSimulatedClickIfActive public because it is
23486         called from a helper function.
23487
23488 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23489
23490         Unreviewed, rolling out r133416.
23491         http://trac.webkit.org/changeset/133416
23492         https://bugs.webkit.org/show_bug.cgi?id=101169
23493
23494         Broke world selection by right click (Requested by rniwa on
23495         #webkit).
23496
23497         * page/EventHandler.cpp:
23498         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23499         (WebCore::EventHandler::sendContextMenuEvent):
23500
23501 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23502
23503         Missing ASCIILiteral in a place of accessibility
23504         https://bugs.webkit.org/show_bug.cgi?id=101160
23505
23506         Reviewed by Darin Adler.
23507
23508         ASCIILiteral usage is being missed in a spot of accessibliity.
23509
23510         * accessibility/AccessibilityMediaControls.cpp:
23511         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23512
23513 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23514
23515         [Qt][WK2] setPlatformStrategies always asserts after r132744
23516         https://bugs.webkit.org/show_bug.cgi?id=100838
23517
23518         Reviewed by Simon Hausmann.
23519
23520         Reland with build fixes.
23521
23522         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23523         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23524         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23525         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23526         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23527         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23528         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23529         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23530         in non production mode.
23531
23532         Basically covered by all tests.
23533
23534         * Target.pri:
23535         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23536         initializeTestFonts uses it.
23537         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23538         is also under that.
23539         (WebKit):
23540         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23541         without calling initializeWebCoreQt.
23542         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23543         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23544         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23545         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23546         the job even if we would stop clearing all caches between tests. Also moved the call to
23547         QFontDatabase::removeAllApplicationFonts from callers to here.
23548         * platform/qt/QtTestSupport.h:
23549         (WebKit):
23550         (QtTestSupport):
23551
23552 2012-11-04  Florin Malita  <fmalita@chromium.org>
23553
23554         Color-profile property triggers assert
23555         https://bugs.webkit.org/show_bug.cgi?id=101080
23556
23557         Reviewed by Dirk Schulze.
23558
23559         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23560         unimplemented property assert. Adding a stub entry to avoid that.
23561
23562         Test: svg/css/color-profile-crash.html
23563
23564         * css/SVGCSSStyleSelector.cpp:
23565         (WebCore::StyleResolver::applySVGProperty):
23566
23567 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23568
23569         Unable to copy text on disabled input fields on long press gesture
23570         https://bugs.webkit.org/show_bug.cgi?id=99698
23571
23572         Reviewed by Ryosuke Niwa.
23573
23574         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23575         with canStartSelection()
23576
23577         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23578
23579         * page/EventHandler.cpp:
23580         (WebCore::EventHandler::handleGestureLongPress):
23581
23582 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23583
23584         Unreviewed, rolling out r133403, r133404, and r133409.
23585         http://trac.webkit.org/changeset/133403
23586         http://trac.webkit.org/changeset/133404
23587         http://trac.webkit.org/changeset/133409
23588         https://bugs.webkit.org/show_bug.cgi?id=101158
23589
23590         "Broke tests" (Requested by kbalazs on #webkit).
23591
23592         * Target.pri:
23593         * WebCore.pri:
23594         * platform/qt/QtTestSupport.h: Removed.
23595
23596 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23597
23598         Get rid of USE(CFURLSTORAGESESSIONS)
23599         https://bugs.webkit.org/show_bug.cgi?id=101131
23600
23601         Reviewed by Sam Weinig.
23602
23603         This is always enabled on CFNetwork based platforms.
23604
23605         * WebCore.exp.in:
23606         * page/Settings.cpp:
23607         (WebCore::Settings::setPrivateBrowsingEnabled):
23608         * platform/mac/CookieJar.mm:
23609         (WebCore::cookies):
23610         (WebCore::cookieRequestHeaderFieldValue):
23611         (WebCore::setCookies):
23612         (WebCore::cookiesEnabled):
23613         (WebCore::getRawCookies):
23614         (WebCore::deleteCookie):
23615         * platform/network/ResourceHandle.h:
23616         (ResourceHandle):
23617         * platform/network/cf/CookieStorageCFNet.cpp:
23618         (WebCore):
23619         (WebCore::currentCFHTTPCookieStorage):
23620         * platform/network/cf/CookieStorageCFNet.h:
23621         * platform/network/cf/ResourceHandleCFNet.cpp:
23622         (WebCore::willSendRequest):
23623         (WebCore::makeFinalRequest):
23624         (WebCore::ResourceHandle::willSendRequest):
23625         (WebCore):
23626         * platform/network/cf/ResourceRequest.h:
23627         (ResourceRequest):
23628         * platform/network/cf/ResourceRequestCFNet.cpp:
23629         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23630         (WebCore):
23631         * platform/network/mac/CookieStorageMac.mm:
23632         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23633         * platform/network/mac/ResourceHandleMac.mm:
23634         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23635         (WebCore::ResourceHandle::createNSURLConnection):
23636         (WebCore::ResourceHandle::willSendRequest):
23637         (WebCore):
23638         * platform/network/mac/ResourceRequestMac.mm:
23639         (WebCore):
23640         (WebCore::ResourceRequest::setStorageSession):
23641
23642 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23643
23644         [Qt][WK2] setPlatformStrategies always asserts after r132744
23645         https://bugs.webkit.org/show_bug.cgi?id=100838
23646
23647         Reviewed by Simon Hausmann.
23648
23649         Reland with build fix.
23650
23651         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23652         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23653         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23654         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23655         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23656         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23657         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23658         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23659         in non production mode.
23660
23661         Basically covered by all tests.
23662
23663         * Target.pri:
23664         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23665         initializeTestFonts uses it.
23666         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23667         is also under that.
23668         (WebKit):
23669         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23670         without calling initializeWebCoreQt.
23671         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23672         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23673         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23674         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23675         the job even if we would stop clearing all caches between tests. Also moved the call to
23676         QFontDatabase::removeAllApplicationFonts from callers to here.
23677         * platform/qt/QtTestSupport.h:
23678         (WebKit):
23679         (QtTestSupport):
23680
23681 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23682
23683         Unreviewed, rolling out r133397.
23684         http://trac.webkit.org/changeset/133397
23685         https://bugs.webkit.org/show_bug.cgi?id=101155
23686
23687         "Broke Qt. No way to force the damn bots to do a clean build.
23688         I'm giving up." (Requested by kbalazs on #webkit).
23689
23690         * Target.pri:
23691         * WebCore.pri:
23692         * platform/qt/QtTestSupport.h: Removed.
23693
23694 2012-11-03  Stephen White  <senorblanco@chromium.org>
23695
23696         Speculative fix to eliminate flakiness in
23697         css3/filters/blur-filter-page-scroll-self.html
23698         https://bugs.webkit.org/show_bug.cgi?id=91620.
23699         Suspicion is that a prior test is setting
23700         window.internals.settings.setEnableCompositingForFixedPosition(true),
23701         causing this test to be intermittely run on the GPU, giving different
23702         pixel results depending on test order.
23703
23704         Reviewed by Jochen Eisinger.
23705
23706         Covered by css3/filters/blur-filter-page-scroll-self.html
23707
23708         * testing/InternalSettings.cpp:
23709         (WebCore::InternalSettings::Backup::Backup):
23710         (WebCore::InternalSettings::Backup::restoreTo):
23711         * testing/InternalSettings.h:
23712         (Backup):
23713
23714 2012-11-03  Mark Rowe  <mrowe@apple.com>
23715
23716         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23717
23718         Reviewed by Anders Carlsson.
23719
23720         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23721         that was introduced is not null safe.
23722
23723         * platform/text/cf/AtomicStringCF.cpp:
23724         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23725
23726 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23727
23728         [Qt][WK2] setPlatformStrategies always asserts after r132744
23729         https://bugs.webkit.org/show_bug.cgi?id=100838
23730
23731         Reviewed by Simon Hausmann.
23732
23733         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23734         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23735         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23736         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23737         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23738         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23739         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23740         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23741         in non production mode.
23742
23743         Basically covered by all tests.
23744
23745         * Target.pri:
23746         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23747         initializeTestFonts uses it.
23748         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23749         is also under that.
23750         (WebKit):
23751         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23752         without calling initializeWebCoreQt.
23753         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23754         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23755         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23756         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23757         the job even if we would stop clearing all caches between tests. Also moved the call to
23758         QFontDatabase::removeAllApplicationFonts from callers to here.
23759         * platform/qt/QtTestSupport.h:
23760         (WebKit):
23761         (QtTestSupport):
23762
23763 2012-11-03  Dan Beam  <dbeam@chromium.org>
23764
23765         Implement HTMLFormElement#requestAutocomplete and associated events
23766         https://bugs.webkit.org/show_bug.cgi?id=100557
23767
23768         Reviewed by Adam Barth.
23769
23770         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23771         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23772
23773         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23774         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23775         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23776         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23777         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23778         after a small delay to behave consistently in all situations and implementations.
23779
23780         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23781
23782         Test: fast/forms/form-request-autocomplete.html
23783
23784         * dom/EventNames.h:
23785         (WebCore):
23786
23787         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23788         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23789         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23790         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23791         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23792         an HTML notification, security concerns, or any other reason it desires).
23793
23794         * html/HTMLAttributeNames.in:
23795
23796         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23797         as event listeners. For example:
23798
23799           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23800
23801         * html/HTMLFormElement.cpp:
23802         (WebCore::HTMLFormElement::HTMLFormElement):
23803         (WebCore):
23804
23805         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23806         triggers requestAutocompleteTimerFired when it times out.
23807
23808         (WebCore::HTMLFormElement::requestAutocomplete):
23809
23810         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23811         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23812         FrameLoaderClient.
23813
23814         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23815
23816         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23817         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23818         target element (this) until fired.
23819
23820         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23821
23822         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23823
23824         (WebCore::HTMLFormElement::parseAttribute):
23825
23826         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23827         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23828
23829         * html/HTMLFormElement.h:
23830         (HTMLFormElement):
23831
23832         Added various methods and data members as required by the implementation.
23833
23834         * html/HTMLFormElement.idl:
23835
23836         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23837         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23838         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23839
23840         * loader/EmptyClients.cpp:
23841         (WebCore):
23842         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23843
23844         Added noop implementation for FrameLoader::didRequestAutocomplete.
23845
23846         * loader/EmptyClients.h:
23847         (EmptyFrameLoaderClient):
23848
23849         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23850
23851         * loader/FrameLoaderClient.h:
23852         (FrameLoaderClient):
23853
23854         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23855
23856 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23857
23858         Web Inspector: %d, %i, and %f log formatters have same result
23859         https://bugs.webkit.org/show_bug.cgi?id=101148
23860
23861         Reviewed by Alexander Pavlov.
23862
23863         Added separate formatters for %f, %i, %d and %s.
23864
23865         Test: inspector/console/console-message-format.html
23866
23867         * inspector/front-end/ConsoleMessage.js:
23868         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23869         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23870         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23871
23872 2012-11-03  Andreas Kling  <kling@webkit.org>
23873
23874         Decouple Attr logic from ElementAttributeData.
23875         <http://webkit.org/b/101126>
23876
23877         Reviewed by Antti Koivisto.
23878
23879         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23880         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23881         can be shared by any number of Elements at a given time.
23882
23883         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23884         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23885
23886         * dom/Element.h:
23887         * dom/ElementAttributeData.h:
23888         * dom/Element.cpp:
23889         (WebCore::attrNodeListMap):
23890         (WebCore::attrNodeListForElement):
23891         (WebCore::ensureAttrNodeListForElement):
23892         (WebCore::removeAttrNodeListForElement):
23893         (WebCore::findAttrNodeInList):
23894         (WebCore::Element::~Element):
23895         (WebCore::Element::detachAttribute):
23896         (WebCore::Element::setAttributeNode):
23897         (WebCore::Element::removeAttributeInternal):
23898         (WebCore::Element::getAttributeNode):
23899         (WebCore::Element::getAttributeNodeNS):
23900         (WebCore::Element::normalizeAttributes):
23901         (WebCore::Element::attrIfExists):
23902         (WebCore::Element::ensureAttr):
23903         (WebCore::Element::detachAttrNodeFromElementWithValue):
23904         (WebCore::Element::detachAllAttrNodesFromElement):
23905         (WebCore::Element::cloneAttributesFromElement):
23906
23907             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23908             conditions that are no longer needed as they used to depend on having an attributeData().
23909
23910         * dom/Node.h:
23911         (WebCore::Node::hasSyntheticAttrChildNodes):
23912         (WebCore::Node::setHasSyntheticAttrChildNodes):
23913
23914             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23915
23916         * dom/Attr.cpp:
23917         (WebCore::Attr::detachFromElementWithValue):
23918
23919             Remove awkward indirection and let the call site deal with removing the Attr node from
23920             the Element's list of Attr nodes.
23921
23922         * dom/ElementAttributeData.cpp:
23923         (WebCore::ElementAttributeData::clearAttributes):
23924
23925             Remove now-unused Element* argument.
23926
23927 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23928
23929         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23930         https://bugs.webkit.org/show_bug.cgi?id=101125
23931
23932         Reviewed by Vsevolod Vlasov.
23933
23934         Added "bottom" as default docked state.
23935
23936         * inspector/front-end/DockController.js:
23937         (WebInspector.DockController):
23938
23939 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23940
23941         [Shadow] ShadowRoot should be able to know the existence of <content>
23942         https://bugs.webkit.org/show_bug.cgi?id=100921
23943
23944         Reviewed by Dimitri Glazkov.
23945
23946         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23947         It provides O(1) method to check the existence of <content>.
23948
23949         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23950         is changed. Larger context is explained in Bug 100451.
23951
23952         Test: fast/dom/shadow/has-content-elements.html
23953
23954         * dom/ShadowRoot.cpp:
23955         (WebCore::ShadowRoot::ShadowRoot):
23956         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23957         all the descendants of ShadowRoot anymore.
23958         * dom/ShadowRoot.h:
23959         (WebCore::ShadowRoot::registerContentElement):
23960         (WebCore::ShadowRoot::unregisterContentElement):
23961         (WebCore::ShadowRoot::hasContentElement):
23962         (ShadowRoot):
23963         * html/shadow/HTMLContentElement.cpp:
23964         (WebCore::HTMLContentElement::HTMLContentElement):
23965         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
23966         we notify it to the ShadowRoot. Note that only active <content> element is counted.
23967         (WebCore):
23968         (WebCore::HTMLContentElement::removedFrom):
23969         * html/shadow/HTMLContentElement.h:
23970         (HTMLContentElement):
23971         * testing/Internals.cpp:
23972         (WebCore::Internals::hasContentElement):
23973         (WebCore):
23974         * testing/Internals.h:
23975         (Internals):
23976         * testing/Internals.idl:
23977
23978 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23979
23980         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
23981         https://bugs.webkit.org/show_bug.cgi?id=99990
23982
23983         Reviewed by Darin Adler.
23984
23985         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
23986         because it was not reset after early return.
23987
23988         * page/FrameView.cpp:
23989         (WebCore::FrameView::paintContents):
23990
23991 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23992
23993         Fix build warning in PluginView.cpp on release build
23994         https://bugs.webkit.org/show_bug.cgi?id=101049
23995
23996         Reviewed by Kentaro Hara.
23997
23998         The protocol, host, port parameters are not used when LOG_DISABLED
23999         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
24000
24001         * plugins/PluginView.cpp:
24002         (WebCore::PluginView::getAuthenticationInfo):
24003
24004 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
24005
24006         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
24007         https://bugs.webkit.org/show_bug.cgi?id=99914
24008
24009         Reviewed by Carlos Garcia Campos.
24010
24011         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
24012         This allows a more generic implementation of authentication, for example, one where a WebKit2
24013         client can completely handle authentication.
24014
24015         No new tests. This does not change behavior.
24016
24017         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
24018         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
24019         support for remembering passwords and pass that information along with the answer to the authentication
24020         request.
24021
24022         The rest of the changes to this class can be summarized as:
24023         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
24024            objects.
24025         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
24026            directly.
24027         * platform/gtk/GtkAuthenticationDialog.h:
24028         (GtkAuthenticationDialog): Remove members which are no longer used.
24029         * platform/network/ResourceHandle.h:
24030         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
24031         * platform/network/soup/ResourceHandleSoup.cpp:
24032         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
24033         for synchronous handles.
24034         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
24035         the internal data structure.
24036         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
24037         (WebCore::ResourceHandle::receivedCredential): Added.
24038         (WebCore::ResourceHandle::receivedCancellation): Added.
24039         (WebCore::authenicateCallback): Pass the handle as the authentication client.
24040
24041 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
24042
24043         Improve CSSParser::setupParser() since the prefix/suffix are literals
24044         https://bugs.webkit.org/show_bug.cgi?id=101107
24045
24046         Reviewed by Andreas Kling.
24047
24048         * css/CSSParser.cpp:
24049         (WebCore::CSSParser::setupParser):
24050         * css/CSSParser.h:
24051         (CSSParser):
24052         (WebCore::CSSParser::setupParser):
24053         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
24054         to compute the length at runtime, we can direclty encode it in the binary.
24055
24056 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24057
24058         Unreviewed, rolling out r133375.
24059         http://trac.webkit.org/changeset/133375
24060         https://bugs.webkit.org/show_bug.cgi?id=101138
24061
24062         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
24063         #webkit).
24064
24065         * platform/text/LineBreakIteratorPoolICU.h:
24066         (WebCore::LineBreakIteratorPool::take):
24067         (WebCore::LineBreakIteratorPool::put):
24068         (LineBreakIteratorPool):
24069         * platform/text/TextBreakIterator.h:
24070         (WebCore):
24071         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24072         (WebCore::LazyLineBreakIterator::get):
24073         (WebCore::LazyLineBreakIterator::reset):
24074         (LazyLineBreakIterator):
24075         * platform/text/TextBreakIteratorICU.cpp:
24076         (WebCore::acquireLineBreakIterator):
24077         (WebCore::releaseLineBreakIterator):
24078         * rendering/RenderBlockLineLayout.cpp:
24079         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24080         * rendering/RenderText.cpp:
24081         (WebCore::RenderText::computePreferredLogicalWidths):
24082         * rendering/RenderText.h:
24083         (WebCore):
24084         * rendering/break_lines.cpp:
24085         (WebCore):
24086         (WebCore::isBreakableSpace):
24087         (WebCore::needsLineBreakIterator):
24088         (WebCore::nextBreakablePosition):
24089         (WebCore::nextBreakablePositionIgnoringNBSP):
24090         * rendering/break_lines.h:
24091         (WebCore):
24092         (WebCore::isBreakable):
24093
24094 2012-11-02  Andreas Kling  <kling@webkit.org>
24095
24096         Cut overgrown ElementAttributeData bitfield.
24097         <http://webkit.org/b/101129>
24098
24099         Reviewed by Anders Carlsson.
24100
24101         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24102         to guard against future bloatage.
24103
24104         * dom/ElementAttributeData.cpp:
24105         (SameSizeAsElementAttributeData):
24106         * dom/ElementAttributeData.h:
24107         (ElementAttributeData):
24108
24109 2012-11-02  Michael Saboff  <msaboff@apple.com>
24110
24111         Crash calling is8Bit() in visitedLinkHash()
24112         https://bugs.webkit.org/show_bug.cgi?id=101119
24113
24114         Reviewed by Filip Pizlo.
24115
24116         Added an isEmpty() check to AttributeURL and KURL.
24117
24118         * platform/LinkHash.cpp:
24119         (WebCore::visitedLinkHash):
24120
24121 2012-11-02  Glenn Adams  <glenn@skynav.com>
24122
24123         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24124         https://bugs.webkit.org/show_bug.cgi?id=89235
24125
24126         Reviewed by Eric Seidel.
24127
24128         See also wiki documentation at:
24129         [1] http://trac.webkit.org/wiki/LineBreaking
24130         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24131
24132         Web exposed changes include:
24133         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24134         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24135         (3) See [2] above for details regarding interpretation.
24136
24137         Tests: css3/line-break/line-break-auto-centered.html
24138                css3/line-break/line-break-auto-half-kana.html
24139                css3/line-break/line-break-auto-hyphens.html
24140                css3/line-break/line-break-auto-inseparables.html
24141                css3/line-break/line-break-auto-iteration-marks.html
24142                css3/line-break/line-break-auto-postfixes.html
24143                css3/line-break/line-break-auto-prefixes.html
24144                css3/line-break/line-break-auto-sound-marks.html
24145                css3/line-break/line-break-loose-centered.html
24146                css3/line-break/line-break-loose-half-kana.html
24147                css3/line-break/line-break-loose-hyphens.html
24148                css3/line-break/line-break-loose-inseparables.html
24149                css3/line-break/line-break-loose-iteration-marks.html
24150                css3/line-break/line-break-loose-postfixes.html
24151                css3/line-break/line-break-loose-prefixes.html
24152                css3/line-break/line-break-loose-sound-marks.html
24153                css3/line-break/line-break-normal-centered.html
24154                css3/line-break/line-break-normal-half-kana.html
24155                css3/line-break/line-break-normal-hyphens.html
24156                css3/line-break/line-break-normal-inseparables.html
24157                css3/line-break/line-break-normal-iteration-marks.html
24158                css3/line-break/line-break-normal-postfixes.html
24159                css3/line-break/line-break-normal-prefixes.html
24160                css3/line-break/line-break-normal-sound-marks.html
24161                css3/line-break/line-break-strict-centered.html
24162                css3/line-break/line-break-strict-half-kana.html
24163                css3/line-break/line-break-strict-hyphens.html
24164                css3/line-break/line-break-strict-inseparables.html
24165                css3/line-break/line-break-strict-iteration-marks.html
24166                css3/line-break/line-break-strict-postfixes.html
24167                css3/line-break/line-break-strict-prefixes.html
24168                css3/line-break/line-break-strict-sound-marks.html
24169
24170         * platform/text/LineBreakIteratorPoolICU.h:
24171         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24172         Add static function to construct ICU locale argument (also used as pool key) with additional
24173         break keyword.
24174         (WebCore::LineBreakIteratorPool::take):
24175         (WebCore::LineBreakIteratorPool::put):
24176         (LineBreakIteratorPool):
24177         Remove direct dependency from ICU library (and types), moving that dependency into
24178         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24179         Update to take line break mode into account.
24180         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24181         which entails expanding pool entry key format to optionally append "@break=" +
24182         "loose"|"normal"|"strict" keyword to locale string.
24183
24184         * platform/text/TextBreakIterator.h:
24185         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24186         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24187         (WebCore::LazyLineBreakIterator::get):
24188         (WebCore::LazyLineBreakIterator::reset):
24189         (LazyLineBreakIterator):
24190         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24191         Add state member to indicate line break mode.
24192
24193         * platform/text/TextBreakIteratorICU.cpp:
24194         (WebCore::acquireLineBreakIterator):
24195         Use new line break mode when making iterator from pool.
24196         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24197         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24198         (WebCore::releaseLineBreakIterator):
24199         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24200         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24201         (WebCore::isCJKLocale):
24202         New functions for determining if CJK rules apply.
24203         (WebCore::openLineBreakIterator):
24204         New function for abstracting opening of ICU style line break iterator. This is now
24205         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24206         This function also takes into account the line break mode.
24207         (WebCore::closeLineBreakIterator):
24208         (WebCore::mapLineIteratorModeToRules):
24209         New function for abstracting closing of ICU style line break iterator. This is now
24210         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24211
24212         * rendering/RenderBlockLineLayout.cpp:
24213         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24214         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24215         Add looseMode local variable to prevent need for computing under isBreakable().
24216
24217         * rendering/RenderText.cpp:
24218         (WebCore::mapLineBreakToIteratorMode):
24219         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24220         and RenderBlock::LineBreaker::nextLineBreak.
24221         (WebCore::RenderText::computePreferredLogicalWidths):
24222         Ensure (lazy line) breakIterator is initialized for line break mode.
24223         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24224
24225         * rendering/RenderText.h:
24226         (WebCore):
24227         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24228         and RenderBlock::LineBreaker::nextLineBreak.
24229
24230         * rendering/break_lines.cpp:
24231         (WebCore):
24232         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24233         to include loose mode parameter.
24234         (WebCore::isBreakableSpace):
24235         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24236         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24237         (WebCore::needsLineBreakIterator):
24238         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24239         to prevent regression to non loose mode path.
24240         (WebCore::nextBreakablePosition):
24241         (WebCore::nextBreakablePositionIgnoringNBSP):
24242         Use new template parameter enums described above.
24243         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24244         (WebCore::nextBreakablePositionLoose):
24245         Introduce two additional 'loose' mode flavors of NBP template expansions.
24246
24247         * rendering/break_lines.h:
24248         (WebCore):
24249         (WebCore::isBreakable):
24250         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24251         accessor method on each invocation.
24252
24253 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24254
24255         Replace NodeRareData hash map with a union on m_renderer
24256         https://bugs.webkit.org/show_bug.cgi?id=100057
24257
24258         Reviewed by Eric Seidel.
24259
24260         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24261         the overhead of accessing rare data and the memory from the map.
24262
24263         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24264         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24265         improvement. As this is better than even the special casing for document that was
24266         done in that bug, general node list access should see an even greater win.
24267
24268         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24269         removing the rare data map overhead.
24270
24271         This is also a 15% improvement on Parser/textarea-parsing.html
24272
24273         By removing the performance overhead of rareData() this patch addresses the performance
24274         issues raised in Bugs 73853, 87034 and 89635.
24275
24276         I ran Parser/html5-full-render.html and there was no performance regression after
24277         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24278
24279         No new tests, this is just a refactor.
24280
24281         * dom/Document.cpp:
24282         (WebCore::Document::Document):
24283         * dom/Document.h:
24284         (WebCore::Node::Node):
24285         * dom/Element.cpp:
24286         (WebCore::Element::elementRareData):
24287         * dom/Node.cpp:
24288         (WebCore::Node::rareData):
24289         (WebCore::Node::ensureRareData):
24290         (WebCore::Node::clearRareData):
24291         (WebCore::Node::renderBox):
24292         (WebCore::Node::renderBoxModelObject):
24293         (WebCore::Node::reportMemoryUsage):
24294         * dom/Node.h:
24295         (NodeRareDataBase):
24296           Base class for NodeRareData that knows about the renderer so we can
24297           inline the accesses in Node.h
24298         (WebCore::NodeRareDataBase::renderer):
24299         (WebCore::NodeRareDataBase::setRenderer):
24300         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24301         (WebCore::NodeRareDataBase::NodeRareDataBase):
24302         (WebCore):
24303         (WebCore::Node::renderer):
24304         (WebCore::Node::setRenderer):
24305         (Node):
24306         * dom/NodeRareData.h:
24307         * dom/NodeRenderStyle.h:
24308         (WebCore::Node::renderStyle):
24309         * dom/Text.cpp:
24310         (WebCore::Text::recalcTextStyle):
24311           This method appears very hot in html5-full-render.html and accessing the
24312           renderer 4 times caused a 2% performance regression with this patch. I
24313           reduced it to 1 access and there's no longer any performance regression.
24314         * dom/WebCoreMemoryInstrumentation.cpp:
24315           Removed tracking of the rare data map memory usage as there is no longer
24316           a map to track.
24317         * dom/WebCoreMemoryInstrumentation.h:
24318         * inspector/InspectorMemoryAgent.cpp:
24319         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24320
24321 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24322
24323         [Mac] ResourceHandle changes for network process
24324         https://bugs.webkit.org/show_bug.cgi?id=101111
24325
24326         Reviewed by Jessie Berlin.
24327
24328         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24329         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24330
24331         * platform/network/NetworkingContext.h:
24332         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24333         (WebCore::NetworkingContext::scheduledOperationQueue):
24334         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24335         is not a must, give scheduledRunLoopPairs() a default implementation.
24336
24337         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24338         static. It was only used to catch a long obsolete bug with debug logging, and
24339         cannot work with multiple threads.
24340         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24341         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24342         check that used isInitializingConnection.
24343
24344 2012-11-02  Chris Rogers  <crogers@google.com>
24345
24346         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24347         https://bugs.webkit.org/show_bug.cgi?id=100885
24348
24349         Reviewed by Kenneth Russell.
24350
24351         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24352
24353         Covered by existing tests.
24354
24355         * Modules/webaudio/AudioParam.cpp:
24356         (WebCore::AudioParam::calculateTimelineValues):
24357         * Modules/webaudio/AudioParamTimeline.cpp:
24358         (WebCore::AudioParamTimeline::valueForContextTime):
24359         (WebCore::AudioParamTimeline::valuesForTimeRange):
24360         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24361         * Modules/webaudio/AudioParamTimeline.h:
24362         (AudioParamTimeline):
24363
24364 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24365
24366         Reduce redundant code in SimpleFontData[platform]
24367         https://bugs.webkit.org/show_bug.cgi?id=97245
24368
24369         Reviewed by Eric Seidel.
24370
24371         Move duplicated code out of platform specific files and into the common file.
24372         This represents all of the methods in SimpleFontData that do not have genuine
24373         platform specific code.
24374
24375         No new tests because there is no change at all in the functionality.
24376
24377         * platform/graphics/SimpleFontData.cpp:
24378         (WebCore):
24379         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24380         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24381         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24382         (WebCore): Removed common code.
24383         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24384         (WebCore): Removed common code.
24385         * platform/graphics/mac/SimpleFontDataMac.mm:
24386         (WebCore): Removed common code.
24387         * platform/graphics/pango/SimpleFontDataPango.cpp:
24388         (WebCore): Removed common code.
24389         * platform/graphics/qt/SimpleFontDataQt.cpp:
24390         (WebCore): Removed common code.
24391         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24392         (WebCore): Removed common code.
24393         * platform/graphics/win/SimpleFontDataWin.cpp:
24394         (WebCore): Removed common code.
24395         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24396         (WebCore): Removed common code.
24397         * platform/graphics/wx/SimpleFontDataWx.cpp:
24398         (WebCore): Removed common code.
24399
24400 2012-11-02  Adam Barth  <abarth@webkit.org>
24401
24402         memory-instrumentation-cached-images.html is crashing
24403         https://bugs.webkit.org/show_bug.cgi?id=101103
24404
24405         Unreviewed.
24406
24407         Restore code deleted in http://trac.webkit.org/changeset/133331.
24408
24409         * bindings/v8/IntrusiveDOMWrapperMap.h:
24410
24411 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24412
24413         Enable SUBPIXEL_LAYOUT on Mac
24414         https://bugs.webkit.org/show_bug.cgi?id=101076
24415
24416         Reviewed by Dave Hyatt.
24417
24418         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24419
24420         * Configurations/FeatureDefines.xcconfig:
24421
24422 2012-11-02  Lianghui Chen  <liachen@rim.com>
24423
24424         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24425         https://bugs.webkit.org/show_bug.cgi?id=101082
24426
24427         Internal PR: 235410.
24428         Patch suggested by George Staikos, prepared by Lyon Chen.
24429         Reviewed by Yong Li.
24430
24431         ResourceHandle::cancel() should call setClient(0) to close the window
24432         during which it has been cancelled but its client is still there and can
24433         be called.
24434
24435         No new tests as it's a code improvement without obvious bug.
24436
24437         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24438         (WebCore::ResourceHandle::cancel):
24439
24440 2012-11-02  Anders Carlsson  <andersca@apple.com>
24441
24442         Add a PluginInactive plug-in unavailability reason
24443         https://bugs.webkit.org/show_bug.cgi?id=101089
24444
24445         Reviewed by Sam Weinig.
24446
24447         This is to be used by Mac WebKit and WebKit2 shortly.
24448
24449         * English.lproj/Localizable.strings:
24450         * platform/LocalizedStrings.cpp:
24451         (WebCore::inactivePluginText):
24452         (WebCore):
24453         * platform/LocalizedStrings.h:
24454         (WebCore):
24455         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24456         (WebCore::inactivePluginText):
24457         (WebCore):
24458         * platform/efl/LocalizedStringsEfl.cpp:
24459         (WebCore::inactivePluginText):
24460         (WebCore):
24461         * platform/gtk/LocalizedStringsGtk.cpp:
24462         (WebCore::inactivePluginText):
24463         (WebCore):
24464         * platform/qt/LocalizedStringsQt.cpp:
24465         (WebCore::inactivePluginText):
24466         (WebCore):
24467         * rendering/RenderEmbeddedObject.cpp:
24468         (WebCore::unavailablePluginReplacementText):
24469         * rendering/RenderEmbeddedObject.h:
24470
24471 2012-11-02  Rob Buis  <rbuis@rim.com>
24472
24473         [CMAKE] Remove QNX specific section
24474         https://bugs.webkit.org/show_bug.cgi?id=101063
24475
24476         Reviewed by Daniel Bates.
24477
24478         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24479         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24480
24481         * CMakeLists.txt:
24482
24483 2012-11-02  Michael Saboff  <msaboff@apple.com>
24484
24485         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24486         https://bugs.webkit.org/show_bug.cgi?id=101014
24487
24488         Reviewed by Geoffrey Garen.
24489
24490         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24491         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24492         version of the templated methods.  Otherwise we use the 16 bit flavor.
24493
24494         Changes covered by existing tests.
24495
24496         * platform/LinkHash.cpp:
24497         (WebCore::findSlashDotDotSlash):
24498         (WebCore::findSlashSlash):
24499         (WebCore::findSlashDotSlash):
24500         (WebCore::containsColonSlashSlash):
24501         (WebCore::squeezeOutNullCharacters):
24502         (WebCore::cleanSlashDotDotSlashes):
24503         (WebCore::mergeDoubleSlashes):
24504         (WebCore::cleanSlashDotSlashes):
24505         (WebCore::cleanPath):
24506         (WebCore::matchLetter):
24507         (WebCore::needsTrailingSlash):
24508         (WebCore::visitedURLInline):
24509         (WebCore::visitedURL):
24510         (WebCore::visitedLinkHash):
24511
24512 2012-11-02  Ian Vollick  <vollick@chromium.org>
24513
24514         Support invalidation tracking for composited layers
24515         https://bugs.webkit.org/show_bug.cgi?id=97801
24516
24517         Reviewed by Simon Fraser.
24518
24519         GraphicsLayers now store invalidated rects and can include them in
24520         the layer tree dump.
24521
24522         Test: compositing/repaint/invalidations-on-composited-layers.html
24523
24524         * WebCore.exp.in:
24525           Exports FrameView::resetTrackedRepaints()
24526         * page/FrameView.cpp:
24527         (WebCore::FrameView::setTracksRepaints):
24528           Notifies each compositor that we are starting/stopping repaints.
24529         (WebCore::FrameView::resetTrackedRepaints):
24530           Moved implementation to the cpp file.
24531         * platform/graphics/GraphicsLayer.cpp:
24532         (WebCore::GraphicsLayer::~GraphicsLayer):
24533           Clears the repaint rects associated with this layer.
24534         (WebCore::GraphicsLayer::resetTrackedRepaints):
24535           Clears the repaint rects associated with this layer.
24536           Note that the repaint rects are stored in a statically allocated
24537           HashMap to avoid using space on the graphics layers.
24538         (WebCore::GraphicsLayer::addRepaintRect):
24539           Adds a repaint rect to list associated with this layer in the
24540           hash map mentioned above.
24541         (WebCore::GraphicsLayer::dumpProperties):
24542           This has been modified to include the repaint rects in the dump
24543           if they've been requested.
24544         * platform/graphics/GraphicsLayerClient.h:
24545         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24546           This is how graphics layers check if repaint tracking is happening.
24547           Returns false by default.
24548         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24549         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24550         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24551         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24552           These now call GraphicsLayer::addRepaintRect as necessary.
24553         * platform/graphics/ca/GraphicsLayerCA.cpp:
24554         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24555           Now calls GraphicsLayer::addRepaintRect as necessary.
24556         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24557         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24558         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24559         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24560           These now call GraphicsLayer::addRepaintRect as necessary.
24561         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24562         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24563         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24564           These now call GraphicsLayer::addRepaintRect as necessary.
24565         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24566         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24567         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24568         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24569           These now call GraphicsLayer::addRepaintRect as necessary.
24570         * rendering/RenderLayerBacking.cpp:
24571         (WebCore::RenderLayerBacking::isTrackingRepaints):
24572           Required since this is a GraphicsLayerClient.
24573         * rendering/RenderLayerCompositor.cpp:
24574         (WebCore::RenderLayerCompositor::layerTreeAsText):
24575           Now accepts a flag to include the repaint rects in the layer tree
24576           dump.
24577         (WebCore::resetTrackedRepaintRectsRecursive):
24578           Clears the repaint rects on all graphics layers.
24579         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24580           Clears the repaint rects on all graphics layers.
24581         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24582           Required since this is a GraphicsLayerClient.
24583         * testing/Internals.cpp:
24584         (WebCore::Internals::layerTreeAsText):
24585         * testing/Internals.h:
24586         * testing/Internals.idl:
24587           The internals changes plumb the new flag for including the repaint
24588           rects in the layer tree dump.
24589
24590 2012-11-02  Adam Barth  <abarth@webkit.org>
24591
24592         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24593         https://bugs.webkit.org/show_bug.cgi?id=100973
24594
24595         Reviewed by Stephen White.
24596
24597         This is the first step towards using intrusive DOM wrapper maps more
24598         widely in WebCore (see
24599         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24600         for more context).
24601
24602         * bindings/v8/DOMDataStore.cpp:
24603         (WebCore::DOMDataStore::DOMDataStore):
24604         * bindings/v8/IntrusiveDOMWrapperMap.h:
24605         (WebCore):
24606         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24607
24608 2012-11-02  Adam Barth  <abarth@webkit.org>
24609
24610         ASSERT in RenderLayer::hitTestContents can fire
24611         https://bugs.webkit.org/show_bug.cgi?id=99656
24612
24613         Reviewed by Eric Seidel.
24614
24615         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24616         are using two different nodes. Since they aren't consistent, we violate
24617         assertions about only setting the inner node if we're doing a
24618         rect-based hit test. This patch makes the two consistent.
24619
24620         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24621
24622         * rendering/RenderBlock.cpp:
24623         (WebCore::RenderBlock::nodeForHitTest):
24624         (WebCore):
24625         (WebCore::RenderBlock::nodeAtPoint):
24626         (WebCore::RenderBlock::updateHitTestResult):
24627         * rendering/RenderBlock.h:
24628         (RenderBlock):
24629
24630 2012-11-02  Mike West  <mkwst@chromium.org>
24631
24632         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24633         https://bugs.webkit.org/show_bug.cgi?id=101043
24634
24635         Reviewed by Adam Barth.
24636
24637         The canonical 'Content-Security-Policy' header landed in 133095, but we
24638         missed a few tests while updating to the new hotness. We also should
24639         start using the canonical header for the inspector.
24640
24641         This patch should have no visible change; tests should continue to pass
24642         with the new header, just as they did with the old header.
24643
24644         * inspector/front-end/inspector.html:
24645
24646 2012-11-02  Adam Barth  <abarth@webkit.org>
24647
24648         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24649         https://bugs.webkit.org/show_bug.cgi?id=100711
24650
24651         Reviewed by Eric Seidel.
24652
24653         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24654         tricky lifetime issues in the UndoManager API that are complicating
24655         ongoing work to improve the interaction between WebCore and the garbage
24656         collector. Rather than leave this code in a broken state, we should
24657         remove it for the time being. We can always restore it from the svn
24658         history when there is an active owner for this code.
24659
24660         * CMakeLists.txt:
24661         * Configurations/FeatureDefines.xcconfig:
24662         * DerivedSources.cpp:
24663         * DerivedSources.make:
24664         * DerivedSources.pri:
24665         * GNUmakefile.features.am:
24666         * GNUmakefile.list.am:
24667         * Target.pri:
24668         * UseJSC.cmake:
24669         * UseV8.cmake:
24670         * WebCore.gypi:
24671         * WebCore.vcproj/WebCore.vcproj:
24672         * WebCore.xcodeproj/project.pbxproj:
24673         * bindings/js/DOMTransaction.cpp: Removed.
24674         * bindings/js/DOMTransaction.h: Removed.
24675         * bindings/js/JSBindingsAllInOne.cpp:
24676         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24677         * bindings/v8/DOMTransaction.cpp: Removed.
24678         * bindings/v8/DOMTransaction.h: Removed.
24679         * bindings/v8/V8HiddenPropertyName.h:
24680         (WebCore):
24681         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24682         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24683         * css/PropertySetCSSStyleDeclaration.cpp:
24684         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24685         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24686         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24687         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24688         * dom/CharacterData.cpp:
24689         (WebCore::CharacterData::setDataAndUpdate):
24690         * dom/ContainerNode.cpp:
24691         (WebCore::willRemoveChild):
24692         (WebCore::willRemoveChildren):
24693         (WebCore::updateTreeAfterInsertion):
24694         * dom/Document.cpp:
24695         (WebCore::Document::Document):
24696         * dom/Document.h:
24697         (WebCore):
24698         (Document):
24699         * dom/Document.idl:
24700         * dom/Element.cpp:
24701         (WebCore::Element::willModifyAttribute):
24702         * editing/CompositeEditCommand.h:
24703         * editing/DOMTransaction.idl: Removed.
24704         * editing/DOMTransactionStep.cpp: Removed.
24705         * editing/DOMTransactionStep.h: Removed.
24706         * editing/Editor.cpp:
24707         (WebCore::Editor::appliedEditing):
24708         (WebCore::Editor::unappliedEditing):
24709         (WebCore::Editor::reappliedEditing):
24710         (WebCore::Editor::canUndo):
24711         (WebCore::Editor::undo):
24712         (WebCore::Editor::canRedo):
24713         (WebCore::Editor::redo):
24714         * editing/UndoManager.cpp: Removed.
24715         * editing/UndoManager.h: Removed.
24716         * editing/UndoManager.idl: Removed.
24717         * editing/UndoStep.h:
24718         (UndoStep):
24719
24720 2012-11-02  Mike West  <mkwst@chromium.org>
24721
24722         Measure the usage of the various CSP headers.
24723         https://bugs.webkit.org/show_bug.cgi?id=100974
24724
24725         Reviewed by Adam Barth.
24726
24727         Currently, we're collecting metrics regarding usage of the
24728         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24729         recently added support for the canonical 'Content-Security-Policy'
24730         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24731         those headers explicitly into the metrics, giving insight into uptake
24732         of the unprefixed header, and into usage of pure reporting vs.
24733         enforcement.
24734
24735         No visible functionality should change; all Content Security Policy
24736         tests should continue to pass.
24737
24738         * page/ContentSecurityPolicy.cpp:
24739         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24740             Convert the CSP header type into a FeatureObserver::Feature, and
24741             observe it.
24742         * page/FeatureObserver.h:
24743             Add three new values to the enum to cover the new header types.
24744
24745 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24746
24747         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24748         Forgot to remove the "!".
24749
24750         * css/StyleResolver.cpp:
24751         (WebCore::StyleResolver::canShareStyleWithElement):
24752
24753 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24754
24755         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24756         https://bugs.webkit.org/show_bug.cgi?id=100892
24757
24758         Reviewed by Adam Barth.
24759
24760         This patch adds a security feature which allows a violation report to be sent back
24761         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24762         reporting mechanism as for CSP violation reports.
24763
24764         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24765                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24766                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24767                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24768                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24769                http/tests/security/xssAuditor/report-script-tag.html
24770                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24771                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24772
24773         * html/parser/XSSAuditor.cpp:
24774         (WebCore::XSSAuditor::XSSAuditor):
24775         (WebCore::XSSAuditor::init):
24776         (WebCore::XSSAuditor::filterToken):
24777         Invoke Ping loader's violation reporting, if requested, when a reflected
24778         XSS is detected.
24779         
24780         * html/parser/XSSAuditor.h:
24781         XSSAuditor class need to store the report URL as well as the undigested versions
24782         of the request URL and request body for reporting.
24783
24784         * loader/MixedContentChecker.cpp:
24785         (WebCore):
24786         * loader/MixedContentChecker.h:
24787         (MixedContentChecker):
24788         Make isMixedContent() method public.
24789
24790         * loader/PingLoader.cpp:
24791         (WebCore::PingLoader::sendViolationReport):
24792         * loader/PingLoader.h:
24793         (PingLoader):
24794         * page/ContentSecurityPolicy.cpp:
24795         (WebCore::ContentSecurityPolicy::reportViolation):
24796         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24797         since this is now used to send more than just CSP violations.
24798         
24799         * platform/network/HTTPParsers.cpp:
24800         (WebCore):
24801         (WebCore::skipEquals):
24802         (WebCore::skipValue):
24803         (WebCore::parseXSSProtectionHeader):
24804         * platform/network/HTTPParsers.h:
24805         Parse and return report= directive in X-XSS-Protection header.
24806         
24807 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24808
24809         Unreviewed, rolling out r133313.
24810         http://trac.webkit.org/changeset/133313
24811         https://bugs.webkit.org/show_bug.cgi?id=101078
24812
24813         "A lot of tests hit the ASSERTs introduced by this patch"
24814         (Requested by haraken on #webkit).
24815
24816         * bindings/v8/V8DOMWrapper.h:
24817         (WebCore::V8DOMWrapper::setDOMWrapper):
24818
24819 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24820
24821         Unreviewed, rolling out r132913.
24822         http://trac.webkit.org/changeset/132913
24823         https://bugs.webkit.org/show_bug.cgi?id=91850
24824
24825         Caused performance regressions.
24826         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24827
24828         * bindings/v8/V8PerIsolateData.cpp:
24829         (WebCore::V8PerIsolateData::visitExternalStrings):
24830         * bindings/v8/V8StringResource.cpp:
24831         (StringTraits):
24832         (WebCore::v8StringToWebCoreString):
24833         * bindings/v8/V8ValueCache.cpp:
24834         (WebCore::makeExternalString):
24835         (WebCore::WebCoreStringResource::visitStrings):
24836         * bindings/v8/V8ValueCache.h:
24837         (WebCore::WebCoreStringResource::WebCoreStringResource):
24838         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24839         (WebCore::WebCoreStringResource::data):
24840         (WebCoreStringResource):
24841         (WebCore::WebCoreStringResource::length):
24842         (WebCore::WebCoreStringResource::atomicString):
24843         (WebCore::WebCoreStringResource::toStringResource):
24844
24845 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24846
24847         [GTK] Remove dependency on SoupPasswordManager
24848         https://bugs.webkit.org/show_bug.cgi?id=100775
24849
24850         Reviewed by Carlos Garcia Campos.
24851
24852         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24853         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24854         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24855
24856         No new tests. This does not change behavior.
24857
24858         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24859         * GNUmakefile.list.am: Add new files to the source list.
24860         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24861         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24862         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24863         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24864         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24865         * platform/network/gtk/CredentialBackingStore.h: Added.
24866
24867 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24868
24869         Fix build warning [-Wswitch]
24870         https://bugs.webkit.org/show_bug.cgi?id=101029
24871
24872         Reviewed by Alexey Proskuryakov.
24873
24874         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24875         in Source/WebCore/css/StyleSheetContents.cpp.
24876         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24877
24878         * css/StyleSheetContents.cpp:
24879         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24880
24881 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24882
24883         Move m_element checks out of canShareStyle into locateSharedStyle
24884         https://bugs.webkit.org/show_bug.cgi?id=101070
24885
24886         Reviewed by Darin Adler.
24887
24888         Can shareStyleWithElement is called for each sibling as we look for a
24889         shareElement. locateSharedStyle is called once for the element we're
24890         trying to find a style for. Checks that only depend on the latter
24891         element should, thus be in locateSharedStyle.
24892
24893         No new tests. There should be no change in behavior, except possibly
24894         a performance improvement in some cases.
24895
24896         * css/StyleResolver.cpp:
24897         (WebCore::StyleResolver::canShareStyleWithElement):
24898         (WebCore::StyleResolver::locateSharedStyle):
24899
24900 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24901
24902         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24903         https://bugs.webkit.org/show_bug.cgi?id=101054
24904
24905         Reviewed by Adam Barth.
24906
24907         I'm investigating a Chromium crash bug:
24908         http://code.google.com/p/chromium/issues/detail?id=155942
24909
24910         I've not yet identified the root cause (because I can't reproduce
24911         the crash), but it looks like we are storing NULL pointers to
24912         V8 internal fields. Just in case, we can add an ASSERT() to
24913         guarantee that NULL pointers are never stored. (Also I'm hoping
24914         that this ASSERT() will give me more debug information.)
24915
24916         No tests. No change in behavior.
24917
24918         * bindings/v8/V8DOMWrapper.h:
24919         (WebCore::V8DOMWrapper::setDOMWrapper):
24920
24921 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24922
24923         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24924         https://bugs.webkit.org/show_bug.cgi?id=101046
24925
24926         Reviewed by Antonio Gomes.
24927
24928         Update the touch overlap score for touch adjustmetn to normalize
24929         with respect to the maximum possible overlap rather than the size
24930         of the target element.  This change enables good overlap scores for
24931         small and large targets alike.  Prior to the patch it was not possible
24932         to get a good overlap score for a sufficiently larget target.
24933
24934         Covered by existing tests, which have been updated to reflect the
24935         intended behavior.
24936
24937         * page/TouchAdjustment.cpp:
24938         (WebCore::TouchAdjustment::hybridDistanceFunction):
24939
24940 2012-11-02  Mike West  <mkwst@chromium.org>
24941
24942         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24943         https://bugs.webkit.org/show_bug.cgi?id=101032
24944
24945         Reviewed by Yury Semikhatsky.
24946
24947         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24948         '-webkit-flex: 1' only to the list generated for errors in the console.
24949         It should have been added to normal warning text as well. This patch
24950         fixes the problem.
24951
24952         * inspector/front-end/inspector.css:
24953         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24954
24955 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24956
24957         Web Inspector: Timeline: show popup for CPU bars.
24958         https://bugs.webkit.org/show_bug.cgi?id=100951
24959
24960         Reviewed by Pavel Feldman.
24961
24962         Each CPU bar can represent a combination of several shorter messages.
24963         We should show information about combined messages - start time,
24964         total duration, CPU time, message count.
24965
24966         * English.lproj/localizedStrings.js: Added "Message Count" string.
24967         * inspector/front-end/TimelinePanel.js:
24968         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
24969         Supply elements with underlying info.
24970         * inspector/front-end/TimelinePresentationModel.js:
24971         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
24972         Added.
24973
24974 2012-11-02  Alexei Filippov  <alph@chromium.org>
24975
24976         Web Inspector: Network panel grid UI is misaligned after r132888
24977         https://bugs.webkit.org/show_bug.cgi?id=101050
24978
24979         Rollback the change to basic data grid css and move it to the native memory
24980         snapshot datagrid css.
24981
24982         Reviewed by Alexander Pavlov.
24983
24984         * inspector/front-end/dataGrid.css:
24985         (.data-grid td):
24986         * inspector/front-end/nativeMemoryProfiler.css:
24987         (.native-snapshot-view .data-grid td):
24988
24989 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24990
24991         Unreviewed, rolling out r133303.
24992         http://trac.webkit.org/changeset/133303
24993         https://bugs.webkit.org/show_bug.cgi?id=101068
24994
24995         "Broke qt wk2 build (seems like bots fails to rerun qmake if
24996         needed)" (Requested by kbalazs on #webkit).
24997
24998         * Target.pri:
24999         * WebCore.pri:
25000         * platform/PlatformStrategies.cpp:
25001         (WebCore):
25002         * platform/qt/QtTestSupport.h: Removed.
25003
25004 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
25005
25006         [Qt][WK2] setPlatformStrategies always asserts after r132744
25007         https://bugs.webkit.org/show_bug.cgi?id=100838
25008
25009         Reviewed by Simon Hausmann.
25010
25011         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
25012         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
25013         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
25014         code. In order to keep the behavior, this patch adds exported helpers to WebCore
25015         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
25016         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
25017         add it to the WebKit1 API for the time being, but my goal was to move in the direction
25018         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
25019         in non production mode.
25020
25021         Basically covered by all tests.
25022
25023         * Target.pri:
25024         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
25025         initializeTestFonts uses it.
25026         * platform/PlatformStrategies.cpp:
25027         (WebCore): Zero initialize the global static variable as it is expected by the functions
25028         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
25029         common runtime environments tend to zero initialize statics by default - but I don't think
25030         we should rely on that.
25031         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
25032         is also under that.
25033         (WebKit):
25034         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
25035         without calling initializeWebCoreQt.
25036         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
25037         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
25038         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
25039         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
25040         the job even if we would stop clearing all caches between tests. Also moved the call to
25041         QFontDatabase::removeAllApplicationFonts from callers to here.
25042         * platform/qt/QtTestSupport.h:
25043         (WebKit):
25044         (QtTestSupport):
25045
25046 2012-11-02  Kent Tamura  <tkent@chromium.org>
25047
25048         Optimize DateTimeFormat::quoteAndAppendLiteral output
25049         https://bugs.webkit.org/show_bug.cgi?id=101040
25050
25051         Reviewed by Kentaro Hara.
25052
25053         In LDML date format pattern, only ASCII alphabet and quote have special
25054         roles. So we don't need to quote the input string if it doesn't contain
25055         them.
25056
25057         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
25058
25059         * platform/text/DateTimeFormat.cpp:
25060         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
25061         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
25062         Append the input string as is if it has no special character.
25063
25064 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
25065
25066         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
25067         https://bugs.webkit.org/show_bug.cgi?id=101052
25068
25069         Reviewed by Yury Semikhatsky.
25070
25071         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
25072         MemoryAgent can visit it but instrumentation for these containers report no objectType.
25073         It means that addRootObject method needs to accept objectType property as an argument.
25074         Otherwise I would have had to create a proxy class with proper objectType.
25075
25076         * dom/WebCoreMemoryInstrumentation.cpp:
25077         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
25078         (WebCore):
25079         * dom/WebCoreMemoryInstrumentation.h:
25080         (WebCoreMemoryInstrumentation):
25081         (WebCore):
25082         * inspector/InspectorMemoryAgent.cpp:
25083         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
25084
25085 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
25086
25087         [Qt][WK2] ASSERT hit for every mouse click
25088         https://bugs.webkit.org/show_bug.cgi?id=100607
25089
25090         Reviewed by Jocelyn Turcotte.
25091
25092         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
25093         by uniting the two in case the mid box is empty. This allows the first box to be merged with
25094         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
25095         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
25096
25097         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
25098         in LayoutRect::intersects already.
25099
25100         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25101
25102         * page/GestureTapHighlighter.cpp:
25103
25104 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25105
25106         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25107         https://bugs.webkit.org/show_bug.cgi?id=99442
25108
25109         Reviewed by Levi Weintraub.
25110
25111         Extra width is displayed after an inline replaced object that follows some
25112         text (not ending in a whitespace) within an inline-block. This is due to
25113         the end width (endMin) of the text object being carried forward (via inlineMin)
25114         and added onto the next line containing the inline replaced object.
25115
25116         This was caused as a regression to, or rather became apparent post the fix
25117         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25118         width when a renderInline with width contained an inline replaced object.
25119
25120         Test: fast/block/block-with-inline-replaced-child-following-text.html
25121
25122         * rendering/RenderBlock.cpp:
25123         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25124         Introduced another flag (shouldBreakLineAfterText) which is set when
25125         our current Text line (object) does not end in a whitespace, thereby
25126         implying that there could be more text following, for which the end width
25127         needs to be carried forward onto the next line.
25128
25129         In case the following object instead turns out to be an Inline Replaced
25130         object, we should terminate our previous line and reset this extra width.
25131         This is now being handled by checking for the shouldBreakLineAfterText
25132         flag while processing Inline Replaced objects.
25133
25134         Once set, shouldBreakLineAfterText shall be reset only if we get another
25135         Text object that ends in a whitespace, signifying the termination of
25136         that text line. For all other cases, we persist with this flag through
25137         the block's inline contents.
25138
25139 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25140
25141         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25142         https://bugs.webkit.org/show_bug.cgi?id=101036
25143
25144         Reviewed by Pavel Feldman.
25145
25146         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25147         This functionality seems to be obsolete.
25148
25149         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25150
25151 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25152
25153         SVG classes cause layering violations in platform Font code
25154         https://bugs.webkit.org/show_bug.cgi?id=98513
25155
25156         Reviewed by Eric Seidel.
25157
25158         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25159         This allows us to remove the layering violation, and several methods, that
25160         previously existed to support SVGTextRunRenderingContext.
25161
25162         No new tests because no change at all in functionality.
25163
25164         * platform/graphics/FontFallbackList.h:
25165         (FontFallbackList):
25166         (GlyphPagesStateSaver): New state save and restore class
25167         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25168         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25169         * rendering/svg/SVGTextRunRenderingContext.cpp:
25170         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25171
25172 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25173
25174         Web Inspector: Fix compilation errors
25175         https://bugs.webkit.org/show_bug.cgi?id=101027
25176
25177         Reviewed by Yury Semikhatsky.
25178
25179         * inspector/InjectedScriptSource.js:
25180         (.):
25181         * inspector/front-end/NativeMemorySnapshotView.js:
25182         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25183
25184 2012-11-02  Andreas Kling  <kling@webkit.org>
25185
25186         Only resolve attribute-derived style once per shared ElementAttributeData.
25187         <http://webkit.org/b/100990>
25188
25189         Reviewed by Antti Koivisto.
25190
25191         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25192         on ElementAttributeData instead of in Node flags.
25193
25194         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25195         since the state is no longer per-Element.
25196
25197         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25198
25199             - Elements with the same attributes in different order.
25200             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25201
25202         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25203
25204         * dom/Node.h:
25205         * dom/ElementAttributeData.h:
25206         (WebCore::ElementAttributeData::presentationAttributeStyle):
25207         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25208         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25209         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25210         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25211         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25212         (ElementAttributeData):
25213         (WebCore::ElementAttributeData::ElementAttributeData):
25214         * dom/Element.cpp:
25215         (WebCore::Element::getAttribute):
25216         * dom/Element.h:
25217         (WebCore::Element::styleAttributeIsDirty):
25218         (WebCore::Element::updateInvalidAttributes):
25219         * dom/StyledElement.cpp:
25220         (WebCore::StyledElement::updateStyleAttribute):
25221         (WebCore::StyledElement::attributeChanged):
25222         (WebCore::StyledElement::styleAttributeChanged):
25223         (WebCore::StyledElement::inlineStyleChanged):
25224         * dom/StyledElement.h:
25225         (WebCore::StyledElement::invalidateStyleAttribute):
25226
25227             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25228             and change them to both use dirty semantics.
25229
25230         * dom/ElementAttributeData.cpp:
25231         (WebCore::ElementAttributeData::cloneDataFrom):
25232
25233             Share the presentation attribute style between cloned elements initially.
25234
25235         * dom/StyledElement.h:
25236         (WebCore::StyledElement::presentationAttributeStyle):
25237         * css/StyleResolver.cpp:
25238         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25239         (WebCore::StyleResolver::matchAllRules):
25240         (WebCore::StyleResolver::canShareStyleWithElement):
25241         * dom/ElementAttributeData.cpp:
25242         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25243         (WebCore::ElementAttributeData::reportMemoryUsage):
25244         * inspector/InspectorCSSAgent.cpp:
25245         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25246
25247             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25248             easily confused with "style attribute".
25249
25250         * dom/StyledElement.cpp:
25251         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25252
25253             Renamed from updateAttributeStyle().
25254
25255 2012-11-01  Kent Tamura  <tkent@chromium.org>
25256
25257         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25258         https://bugs.webkit.org/show_bug.cgi?id=101007
25259
25260         Reviewed by Kentaro Hara.
25261
25262         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25263         necessary if one of date/time input types is enabled and even if
25264         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25265         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25266
25267         The following clases are used only for ChromeClient::openDateTimeChooser.
25268         They should be wrapped with the same flag.
25269           - class DateTimeChooser
25270           - class DateTiemChooserClient
25271
25272         The following classes/functions are used for
25273         Locale::formatDateTime. They should be wrapped with the same flag.
25274           - Locale::dateFormat
25275           - Locale::monthFormat
25276           - Locale::timeFormat
25277           - Locale::shortTimeFormat
25278           - Locale::monthLabels
25279           - Locale::shortMonthLabels
25280           - Locale::standAloneMonthLabels
25281           - Locale::shortStandAloneMonthLabels
25282           - class DateTimeFormat
25283
25284         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25285          1) <input> supports calendar picker UI, and
25286          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25287         Now ENABLE_CALENDAR_PICKER means only 2.
25288
25289         No new tests because of no behavior changes.
25290
25291         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25292         input types are enabled because this is a common super class of
25293         date/time InputType classes.
25294         * html/BaseDateAndTimeInputType.cpp: Ditto.
25295         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25296         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25297
25298         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25299         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25300         * loader/EmptyClients.h: Ditto.
25301         * platform/DateTimeChooser.h:
25302         This is needed only if ChromeClient::openDateTimeChooser is available.
25303         * platform/DateTimeChooserClient.h: Ditto.
25304
25305         * platform/LocalizedStrings.h:
25306         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25307         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25308
25309         * platform/text/PlatformLocale.h:
25310         Change the condition for Locale::formatDateTime and the code used by
25311         Locale::formatDateTime.
25312         * platform/text/PlatformLocale.cpp:
25313         (WebCore::Locale::formatDateTime):
25314         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25315         localized representations of date/time values.
25316         * platform/text/LocaleICU.cpp:
25317         Change the condition for the code used by Locale::formatDateTime.
25318         * platform/text/LocaleICU.h: Ditto.
25319         * platform/text/LocaleNone.cpp: Ditto.
25320         * platform/text/mac/LocaleMac.h: Ditto.
25321         * platform/text/mac/LocaleMac.mm: Ditto.
25322         * platform/text/win/LocaleWin.cpp: Ditto.
25323         * platform/text/win/LocaleWin.h: Ditto.
25324         * platform/text/DateTimeFormat.cpp: Ditto.
25325         * platform/text/DateTimeFormat.h: Ditto.
25326
25327         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25328         Remove some #if-#endif for a picker indicator element because
25329         ENABLE_CALENDAR_PICKER meaning is changed.
25330         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25331
25332         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25333         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25334         * html/shadow/PickerIndicatorElement.h: Ditto.
25335         * rendering/RenderDetailsMarker.cpp: Ditto.
25336         * rendering/RenderDetailsMarker.h: Ditto.
25337         * rendering/RenderTheme.h: Ditto.
25338         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25339         * rendering/RenderThemeChromiumCommon.h: Ditto.
25340         * rendering/RenderThemeChromiumMac.h: Ditto.
25341         * rendering/RenderThemeChromiumSkia.h: Ditto.
25342
25343 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25344
25345         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25346         https://bugs.webkit.org/show_bug.cgi?id=100842
25347
25348         Reviewed by Simon Hausmann.
25349
25350         After updating Qt5 on the buildbots, the workaround
25351         introduced in r131720 is not needed anymore.
25352
25353         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25354         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25355
25356 2012-11-02  Kent Tamura  <tkent@chromium.org>
25357
25358         Add a common base class for date/time input types without inline editing behavior
25359         https://bugs.webkit.org/show_bug.cgi?id=101031
25360
25361         Reviewed by Hajime Morita.
25362
25363         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25364         DateTimeChooserClient, and date/time input types inherit it if
25365         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25366
25367         No new tests. This doesn't change any behavior.
25368
25369         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25370         * GNUmakefile.list.am: Ditto.
25371         * Target.pri: Ditto.
25372         * WebCore.gypi: Ditto.
25373         * WebCore.xcodeproj/project.pbxproj: Ditto.
25374         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25375         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25376
25377         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25378         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25379         * html/DateTimeInputType.h: Ditto.
25380         * html/DateTimeLocalInputType.h: Ditto.
25381         * html/MonthInputType.h: Ditto.
25382         * html/TimeInputType.h: Ditto.
25383         * html/WeekInputType.h: Ditto.
25384
25385 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25386
25387         Web Inspector: [JSC] implement WorkerScriptDebugServer
25388         https://bugs.webkit.org/show_bug.cgi?id=99801
25389
25390         Reviewed by Yury Semikhatsky.
25391
25392         To implement Worker Inspector for JSC.
25393         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25394         the JS running in worker-context and normal page-context.
25395         The function "isContentScript" now is virtual because the original invoked functions are useless
25396         and cause problem in worker-context.
25397         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25398         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25399         JS code (Pause on start).
25400
25401         No new test case.
25402
25403         * bindings/js/PageScriptDebugServer.cpp:
25404         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25405         (WebCore):
25406         * bindings/js/PageScriptDebugServer.h:
25407         (PageScriptDebugServer):
25408         * bindings/js/ScriptDebugServer.cpp:
25409         (WebCore::ScriptDebugServer::isContentScript):
25410         (WebCore::ScriptDebugServer::pauseIfNeeded):
25411         * bindings/js/ScriptDebugServer.h:
25412         (JSC):
25413         (ScriptDebugServer):
25414         * bindings/js/WorkerScriptController.cpp:
25415         (WebCore::WorkerScriptController::attachDebugger):
25416         (WebCore):
25417         (WebCore::WorkerScriptController::detachDebugger):
25418         * bindings/js/WorkerScriptController.h:
25419         (WorkerScriptController):
25420         * bindings/js/WorkerScriptDebugServer.cpp:
25421         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25422         (WebCore):
25423         (WebCore::WorkerScriptDebugServer::addListener):
25424         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25425         (WebCore::WorkerScriptDebugServer::removeListener):
25426         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25427         * bindings/js/WorkerScriptDebugServer.h:
25428         (WorkerScriptDebugServer):
25429         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25430         (WebCore::WorkerScriptDebugServer::isContentScript):
25431
25432 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25433
25434         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25435         https://bugs.webkit.org/show_bug.cgi?id=101025
25436
25437         Reviewed by Ryosuke Niwa.
25438
25439         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25440
25441         * dom/Node.cpp:
25442         (WebCore::Node::rendererIsEditable):
25443
25444 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25445
25446         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25447         https://bugs.webkit.org/show_bug.cgi?id=100743
25448
25449         Reviewed by Alexander Pavlov.
25450
25451         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25452         TabbedPane now consumes all middle mouse button mouse ups as well.
25453         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25454
25455         * inspector/front-end/DefaultTextEditor.js:
25456         (.preventDefaultOnMouseUp):
25457         (.consumeMouseUp):
25458         * inspector/front-end/NavigatorView.js:
25459         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25460         * inspector/front-end/TabbedPane.js:
25461         (WebInspector.TabbedPane):
25462         (WebInspector.TabbedPane.prototype.onMouseUp):
25463         (WebInspector.TabbedPane.prototype.onMouseClick):
25464
25465 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25466
25467         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25468         https://bugs.webkit.org/show_bug.cgi?id=100866
25469
25470         Reviewed by Yury Semikhatsky.
25471
25472         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25473
25474         * CMakeLists.txt:
25475         * GNUmakefile.list.am:
25476         * Target.pri:
25477         * WebCore.gypi:
25478         * WebCore.vcproj/WebCore.vcproj:
25479         * dom/DocumentOrderedMap.cpp:
25480         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25481         (WebCore):
25482         * dom/DocumentOrderedMap.h:
25483         (DocumentOrderedMap):
25484         * dom/Element.cpp:
25485         (WebCore::Element::reportMemoryUsage):
25486         (WebCore):
25487         * dom/Element.h:
25488         * dom/ElementRareData.cpp: Added.
25489         (WebCore):
25490         (WebCore::ElementRareData::reportMemoryUsage):
25491         * dom/ElementRareData.h:
25492         (ElementRareData):
25493         * dom/ElementShadow.cpp:
25494         (WebCore::ElementShadow::reportMemoryUsage):
25495         (WebCore):
25496         * dom/ElementShadow.h:
25497         (ElementShadow):
25498         * dom/Node.cpp:
25499         (WebCore::Node::reportMemoryUsage):
25500         * dom/NodeRareData.cpp: Added.
25501         (WebCore):
25502         (WebCore::NodeListsNodeData::reportMemoryUsage):
25503         (WebCore::NodeRareData::reportMemoryUsage):
25504         * dom/NodeRareData.h:
25505         (NodeListsNodeData):
25506         (NodeRareData):
25507         * dom/ShadowRoot.cpp:
25508         (WebCore):
25509         (WebCore::ShadowRoot::reportMemoryUsage):
25510         * dom/ShadowRoot.h:
25511         (ShadowRoot):
25512         * dom/TreeScope.cpp:
25513         (WebCore::TreeScope::reportMemoryUsage):
25514         (WebCore):
25515         * dom/TreeScope.h:
25516         (TreeScope):
25517         * html/HTMLFormControlElement.cpp:
25518         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25519         (WebCore):
25520         * html/HTMLFormControlElement.h:
25521         (HTMLFormControlElement):
25522         * html/HTMLInputElement.cpp:
25523         (WebCore::HTMLInputElement::reportMemoryUsage):
25524         (WebCore):
25525         * html/HTMLInputElement.h:
25526         (HTMLInputElement):
25527         * html/HTMLTextFormControlElement.cpp:
25528         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25529         (WebCore):
25530         * html/HTMLTextFormControlElement.h:
25531         (HTMLTextFormControlElement):
25532
25533 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25534
25535         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25536         https://bugs.webkit.org/show_bug.cgi?id=97471
25537
25538         Reviewed by Pavel Feldman.
25539
25540         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25541         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25542         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25543         Fixed expiresDate calculation.
25544         Removed getters from CookieParser for better compilation.
25545
25546         * English.lproj/localizedStrings.js:
25547         * inspector/front-end/AuditRules.js:
25548         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25549         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25550         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25551         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25552         * inspector/front-end/CookieItemsView.js:
25553         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25554         * inspector/front-end/CookieParser.js:
25555         (WebInspector.CookieParser.prototype.cookies):
25556         (WebInspector.CookieParser.prototype._flushCookie):
25557         (WebInspector.CookieParser.prototype._addCookie):
25558         (WebInspector.Cookie.prototype.httpOnly):
25559         (WebInspector.Cookie.prototype.secure):
25560         (WebInspector.Cookie.prototype.session):
25561         (WebInspector.Cookie.prototype.path):
25562         (WebInspector.Cookie.prototype.domain):
25563         (WebInspector.Cookie.prototype.expires):
25564         (WebInspector.Cookie.prototype.maxAge):
25565         (WebInspector.Cookie.prototype.size):
25566         (WebInspector.Cookie.prototype.setSize):
25567         (WebInspector.Cookie.prototype.expiresDate):
25568         (WebInspector.Cookie.prototype.attributes):
25569         (WebInspector.Cookies.getCookiesAsync):
25570         (WebInspector.Cookies.buildCookiesFromString):
25571         (WebInspector.Cookies.buildCookieProtocolObject):
25572         (WebInspector.Cookies.cookieMatchesResourceURL):
25573         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25574         * inspector/front-end/CookiesTable.js:
25575         (WebInspector.CookiesTable):
25576         (WebInspector.CookiesTable.prototype._totalSize):
25577         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25578         (WebInspector.CookiesTable.prototype._sortCookies):
25579         (WebInspector.CookiesTable.prototype._createGridNode):
25580         * inspector/front-end/HAREntry.js:
25581         (WebInspector.HAREntry.prototype._buildCookie):
25582
25583 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25584
25585         Memory instrumentation: do not call checkCountedObject with wrong pointers
25586         https://bugs.webkit.org/show_bug.cgi?id=100958
25587
25588         Reviewed by Alexander Pavlov.
25589
25590         Removed redundant call to checkCountedObject.
25591
25592         * inspector/MemoryInstrumentationImpl.cpp:
25593         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25594
25595 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25596
25597         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25598         https://bugs.webkit.org/show_bug.cgi?id=101022
25599
25600         Reviewed by Yury Semikhatsky.
25601
25602         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25603         "event.target" might be a label.
25604
25605         The problem just causes an error report, doesn't effect function, so no new test case.
25606
25607         * inspector/front-end/WorkersSidebarPane.js:
25608         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25609
25610 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25611
25612         [Shadow] Element should have getter and setter of attribute 'pseudo'
25613         https://bugs.webkit.org/show_bug.cgi?id=100831
25614
25615         Reviewed by Hajime Morita.
25616
25617         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25618
25619         Test: fast/dom/shadow/pseudo-attribute.html
25620
25621         * dom/Element.cpp:
25622         (WebCore::Element::pseudo):
25623         (WebCore):
25624         (WebCore::Element::setPseudo):
25625         * dom/Element.h:
25626         (Element):
25627         * dom/Element.idl:
25628         * html/HTMLAttributeNames.in:
25629
25630 2012-11-01  Roger Fong  <roger_fong@apple.com>
25631
25632         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25633         https://bugs.webkit.org/show_bug.cgi?id=101008
25634
25635         Reviewed by fischman@chromium.org.
25636
25637         * html/HTMLMediaElement.cpp:
25638         (WebCore::HTMLMediaElement::clearMediaPlayer):
25639         * html/HTMLMediaElement.h:
25640         (HTMLMediaElement):
25641
25642 2012-11-01  Stephen White  <senorblanco@chromium.org>
25643
25644         Unreviewed, rolling out r133244.
25645         http://trac.webkit.org/changeset/133244
25646         https://bugs.webkit.org/show_bug.cgi?id=100973
25647
25648         Broke Chromium Mac (clang) builds.
25649
25650         * bindings/v8/DOMDataStore.cpp:
25651         (WebCore::DOMDataStore::DOMDataStore):
25652         * bindings/v8/IntrusiveDOMWrapperMap.h:
25653         (WebCore::DOMNodeWrapperMap::weakCallback):
25654
25655 2012-11-01  Ami Fischman  <fischman@chromium.org>
25656
25657         HTMLMediaPlayer should free m_player when src is set/changed
25658         https://bugs.webkit.org/show_bug.cgi?id=99647
25659
25660         Reviewed by Eric Carlson.
25661
25662         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25663
25664         * html/HTMLMediaElement.cpp:
25665         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25666         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25667         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25668         (WebCore):
25669         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25670         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25671         (HTMLMediaElement):
25672
25673 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25674
25675         XSS blocker false positive when page contains <iframe src="">
25676         https://bugs.webkit.org/show_bug.cgi?id=93416
25677
25678         Reviewed by Adam Barth.
25679
25680         Treat src="" and src="about:blank" as safe resources even if they appear
25681         in the query parameters.
25682
25683         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25684                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25685                http/tests/security/xssAuditor/iframe-injection-allowed.html
25686
25687         * html/parser/XSSAuditor.cpp:
25688         (WebCore::XSSAuditor::isLikelySafeResource):
25689
25690 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25691
25692         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25693         https://bugs.webkit.org/show_bug.cgi?id=100912
25694
25695         Reviewed by Simon Fraser.
25696
25697         Frame scale will add transformation to RenderView, so fixed position doesn't
25698         get propagated up to the viewport by RenderGeometryMap. This is handled
25699         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25700         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25701         transformation case.
25702
25703         A layout test is added to catch this issue. The test will crash debug build
25704         without this patch.
25705
25706         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25707
25708         * rendering/RenderGeometryMap.cpp:
25709         (WebCore::RenderGeometryMap::mapToAbsolute):
25710
25711 2012-11-01  Adam Barth  <abarth@webkit.org>
25712
25713         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25714         https://bugs.webkit.org/show_bug.cgi?id=100973
25715
25716         Reviewed by Kentaro Hara.
25717
25718         This is the first step towards using intrusive DOM wrapper maps more
25719         widely in WebCore (see
25720         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25721         for more context).
25722
25723         * bindings/v8/DOMDataStore.cpp:
25724         (WebCore::DOMDataStore::DOMDataStore):
25725         * bindings/v8/IntrusiveDOMWrapperMap.h:
25726         (WebCore):
25727         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25728
25729 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25730
25731         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25732         https://bugs.webkit.org/show_bug.cgi?id=100533
25733
25734         Reviewed by Dean Jackson.
25735
25736         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25737         Both the software path and the composited one will use this operation instead. There will be
25738         no need to check the shader in platform code anymore.
25739
25740         No new tests, already covered by existing custom filter tests.
25741
25742         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25743         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25744         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25745         (WebCore):
25746         (WebCore::ValidatedCustomFilterOperation::create):
25747         (ValidatedCustomFilterOperation):
25748         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25749         (WebCore::ValidatedCustomFilterOperation::parameters):
25750         (WebCore::ValidatedCustomFilterOperation::meshRows):
25751         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25752         (WebCore::ValidatedCustomFilterOperation::meshType):
25753         (WebCore::ValidatedCustomFilterOperation::operator==):
25754         * rendering/FilterEffectRenderer.cpp:
25755         (WebCore::createCustomFilterEffect):
25756         (WebCore::FilterEffectRenderer::build):
25757         * rendering/RenderLayer.cpp:
25758         (WebCore::RenderLayer::ensureBacking):
25759         (WebCore::RenderLayer::clearBacking):
25760         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25761         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25762         (WebCore):
25763         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25764         (WebCore::RenderLayer::computeFilterOperations):
25765         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25766         This one is supposed to add the clients needed to load network resources.
25767         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25768         and creates a FilterEffectRenderer.
25769         * rendering/RenderLayer.h:
25770         (RenderLayer):
25771
25772 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25773
25774         [CSS Shaders] Get rid of internal tex coord attribute
25775         https://bugs.webkit.org/show_bug.cgi?id=94358
25776
25777         Reviewed by Dean Jackson.
25778
25779         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25780         sample the element texture by texture coordinate.
25781
25782         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25783         WebKit can add its own a_texCoord definition to the author's shader.
25784
25785         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25786         shader if the author did not define a_texCoord with the correct type. Essentially, if
25787         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25788         type and that its value is unmodified.
25789
25790         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25791
25792         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25793         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25794             Remove the references to m_internalTexCoordAttribLocation.
25795         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25796         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25797         * platform/graphics/filters/CustomFilterRenderer.cpp:
25798         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25799         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25800         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25801         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25802             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25803             method.
25804         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25805             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25806             shader, but before the shader's new main function. As before, the new main function
25807             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25808         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25809         (WebCore):
25810             Add a forward declaration for ANGLEShaderSymbol.
25811         (CustomFilterValidatedProgram):
25812             Update the method prototype for rewriteMixVertexShader.
25813
25814 2012-11-01  Chris Rogers  <crogers@google.com>
25815
25816         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25817         https://bugs.webkit.org/show_bug.cgi?id=100994
25818
25819         Reviewed by Kenneth Russell.
25820
25821         In some rare cases it has been observed that nodes are getting deleted in the main thread
25822         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25823         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25824         This was possible because nodes marked for deletion with markForDeletion() could be picked
25825         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25826         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25827         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25828         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25829
25830         * Modules/webaudio/AudioContext.cpp:
25831         (WebCore::AudioContext::markForDeletion):
25832         (WebCore::AudioContext::scheduleNodeDeletion):
25833         (WebCore::AudioContext::deleteMarkedNodes):
25834         * Modules/webaudio/AudioContext.h:
25835         (AudioContext):
25836
25837 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25838
25839         Build fix after r133224 as suggested by Enrica.
25840         Confirmed the test failures go away on Chromium Mac locally.
25841
25842         * page/EventHandler.cpp:
25843         (WebCore::EventHandler::updateSelectionForMouseDrag):
25844
25845 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25846
25847         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25848
25849         Rubber-stamped by Joe Pecoraro.
25850
25851         All CFNetwork based platforms have this now, but not all use it at the moment.
25852
25853         * loader/ResourceLoader.h:
25854         * loader/SubresourceLoader.h:
25855         * loader/cf/SubresourceLoaderCF.cpp:
25856         * loader/mac/ResourceLoaderMac.mm:
25857         * platform/SharedBuffer.cpp:
25858         (WebCore::SharedBuffer::clear):
25859         (WebCore::SharedBuffer::buffer):
25860         (WebCore::SharedBuffer::getSomeData):
25861         * platform/SharedBuffer.h:
25862         * platform/cf/SharedBufferCF.cpp:
25863         * platform/network/ResourceHandle.h:
25864         * platform/network/ResourceHandleClient.h:
25865         (ResourceHandleClient):
25866         * platform/network/cf/ResourceHandleCFNet.cpp:
25867         (WebCore::willCacheResponse):
25868         (WebCore::ResourceHandle::createCFURLConnection):
25869         * platform/network/mac/ResourceHandleMac.mm:
25870
25871 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25872
25873         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25874         https://bugs.webkit.org/show_bug.cgi?id=100979
25875
25876         Reviewed by Joseph Pecoraro.
25877
25878         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25879         * loader/ResourceBuffer.h:
25880         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25881
25882         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25883         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25884         here, meaning that the results will likely be incorrect.
25885
25886         * platform/network/cf/ResourceHandleCFNet.cpp:
25887         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25888         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25889         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25890         come together. Changed to check for these separately.
25891
25892 2012-11-01  Rob Buis  <rbuis@rim.com>
25893
25894         [BlackBerry] Add more form validation strings
25895         https://bugs.webkit.org/show_bug.cgi?id=100978
25896
25897         Reviewed by Yong Li.
25898
25899         PR 210072
25900
25901         Implement these two methods properly.
25902
25903         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25904         (WebCore::validationMessageRangeUnderflowText):
25905         (WebCore::validationMessageRangeOverflowText):
25906
25907 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25908
25909         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25910         https://bugs.webkit.org/show_bug.cgi?id=100782
25911
25912         Reviewed by Dean Jackson.
25913
25914         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25915         This way we can reuse it without including the CustomFilterOperation file.
25916
25917         No new tests, just refactoring code.
25918
25919         * css/CSSPrimitiveValueMappings.h:
25920         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25921         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25922         * css/StyleResolver.cpp:
25923         (WebCore::StyleResolver::createCustomFilterOperation):
25924         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25925         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25926         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25927         * platform/graphics/filters/CustomFilterNumberParameter.h:
25928         * platform/graphics/filters/CustomFilterOperation.cpp:
25929         (WebCore::CustomFilterOperation::CustomFilterOperation):
25930         * platform/graphics/filters/CustomFilterOperation.h:
25931         (WebCore::CustomFilterOperation::create):
25932         (WebCore::CustomFilterOperation::meshBoxType):
25933         (CustomFilterOperation):
25934         * platform/graphics/filters/CustomFilterRenderer.cpp:
25935         (WebCore::CustomFilterRenderer::create):
25936         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25937         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25938         headers were needed to replace the files that were automatically incldued because of that file.
25939         (WebCore):
25940         (CustomFilterRenderer):
25941         * platform/graphics/filters/FECustomFilter.cpp:
25942         (WebCore::FECustomFilter::FECustomFilter):
25943         (WebCore::FECustomFilter::create):
25944         * platform/graphics/filters/FECustomFilter.h:
25945         (FECustomFilter):
25946
25947 2012-11-01  Enrica Casucci  <enrica@apple.com>
25948
25949         Part2 of: Extend -webkit-user-select with new value "all"
25950         <rdar://problem/10161404>
25951         https://bugs.webkit.org/show_bug.cgi?id=91912
25952
25953         Reviewed by Ryosuke Niwa.
25954
25955         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25956         The patch was originally prepared by Alice Cheng but the approach has been changed.
25957         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25958         when moving the cursor and a deletion should delete the element and all its descentants at once.
25959         The key change is in Node::rendererIsEditable where we now return false if the element style is
25960         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
25961         over the element. In both cases we force the selection to extend over the entire element with
25962         the user-select: all attribute.
25963         This is currently enabled only for the Mac port.
25964
25965         Test: editing/selection/user-select-all-selection.html
25966
25967         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
25968         when called from JavaScript. Internally isContentEditable returns false on
25969         nodes with user-select: all style.
25970         (WebCore::Node::isContentEditable):
25971         (WebCore::Node::isContentRichlyEditable):
25972         (WebCore::Node::rendererIsEditable):
25973         (WebCore::Node::shouldUseInputMethod):
25974         (WebCore::Node::willRespondToMouseClickEvents):
25975         * dom/Node.h:
25976         (WebCore::Node::rendererIsEditable):
25977         (WebCore::Node::rendererIsRichlyEditable):
25978         * dom/Position.cpp:
25979         (WebCore::Position::nodeIsUserSelectAll): Added.
25980         (WebCore::Position::rootUserSelectAllForNode): Added.
25981         * dom/Position.h: Added static functions described above.
25982         * editing/ApplyStyleCommand.cpp:
25983         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
25984         isContentEditable() call.
25985         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
25986         isContentEditable() call.
25987         * editing/DeleteFromTextNodeCommand.cpp:
25988         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
25989         isContentEditable() call.
25990         * editing/FrameSelection.cpp:
25991         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
25992         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
25993         (WebCore::FrameSelection::modifyExtendingRight):
25994         (WebCore::FrameSelection::modifyExtendingForward):
25995         (WebCore::FrameSelection::modifyExtendingLeft):
25996         (WebCore::FrameSelection::modifyExtendingBackward):
25997         (WebCore::FrameSelection::modify):
25998         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
25999         isContentEditable() call.
26000         * editing/InsertNodeBeforeCommand.cpp:
26001         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
26002         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
26003         * editing/RemoveNodeCommand.cpp:
26004         (WebCore::RemoveNodeCommand::doApply): Ditto.
26005         * editing/visible_units.cpp:
26006         (WebCore::startOfParagraph): We should not consider a paragraph break and element
26007         with user-select: all style, like we do at the border of editability.
26008         (WebCore::endOfParagraph): Ditto.
26009         * page/EventHandler.cpp:
26010         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
26011         around the element whose style is user-select: all.
26012         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
26013         * rendering/RootInlineBox.cpp:
26014         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
26015         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
26016         we should return the selection state as SelectionBoth, assuming we went past the end selection.
26017         This avoids doing an incorrect gap filling for the selection highlighting.
26018
26019 2012-11-01  Alec Flett  <alecflett@chromium.org>
26020
26021         IndexedDB: Fix Windows build by re-adding a #include
26022         https://bugs.webkit.org/show_bug.cgi?id=100986
26023
26024         Reviewed by Stephen White.
26025
26026         Fix #include that broke windows.
26027
26028         * Modules/indexeddb/IDBCallbacks.h:
26029
26030 2012-11-01  David Barton  <dbarton@mathscribe.com>
26031
26032         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
26033         https://bugs.webkit.org/show_bug.cgi?id=97390
26034
26035         Reviewed by Ojan Vafai.
26036
26037         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
26038         in layout() will be the base's true height, without any flexbox stretching.
26039
26040         Tested by existing tests.
26041
26042         * rendering/mathml/RenderMathMLSubSup.cpp:
26043         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
26044         (WebCore::RenderMathMLSubSup::addChild):
26045         (WebCore::RenderMathMLSubSup::styleDidChange):
26046         * rendering/mathml/RenderMathMLSubSup.h:
26047         (RenderMathMLSubSup):
26048
26049 2012-11-01  Antti Koivisto  <antti@apple.com>
26050
26051         REGRESSION (r132941): attribute modification 10% performance regression
26052         https://bugs.webkit.org/show_bug.cgi?id=100873
26053
26054         Reviewed by Ojan Vafai.
26055
26056         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
26057         to mark the unchanged classes
26058
26059         * css/StyleResolver.cpp:
26060         (WebCore):
26061         * css/StyleResolver.h:
26062         (WebCore::StyleResolver::hasSelectorForAttribute):
26063         (WebCore):
26064         (WebCore::StyleResolver::hasSelectorForClass):
26065         (WebCore::StyleResolver::hasSelectorForId):
26066         
26067             Inlined these and moved value validity testing to clients.
26068
26069         * dom/Element.cpp:
26070         (WebCore::checkNeedsStyleInvalidationForIdChange):
26071         (WebCore):
26072         (WebCore::Element::attributeChanged):
26073     
26074             Clean up id testing too.
26075
26076         (WebCore::checkNeedsStyleInvalidationForClassChange):
26077         
26078             Use bit vector for marking seen values. Avoids allocations and reffing.
26079
26080         (WebCore::Element::classAttributeChanged):
26081         
26082             Don't test if style is already invalid.
26083
26084 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
26085
26086         [Mac] Crash in Range::editingStartPosition
26087         https://bugs.webkit.org/show_bug.cgi?id=100972
26088
26089         Reviewed by Enrica Casucci.
26090
26091         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
26092         pastLastNode() will crash.
26093
26094         No new tests since determining the exact condition under which we go through the said code path and
26095         toNormalRange returns null is hard.
26096
26097         * editing/mac/EditorMac.mm:
26098         (WebCore::Editor::fontForSelection):
26099
26100 2012-11-01  Beth Dakin  <bdakin@apple.com>
26101
26102         https://bugs.webkit.org/show_bug.cgi?id=100917
26103         There should be a way to dump the scrolling tree from the layout tests
26104
26105         Reviewed by Simon Fraser.
26106
26107         New Internals call to dump the scrolling state tree as text. Calls through to the 
26108         ScrollingCoordinator.
26109         * testing/Internals.cpp:
26110         (WebCore::Internals::scrollingStateTreeAsText):
26111         (WebCore):
26112         * testing/Internals.h:
26113         * testing/Internals.idl:
26114         * WebCore.exp.in:
26115         * page/Page.cpp:
26116         (WebCore::Page::scrollingStateTreeAsText):
26117         (WebCore):
26118         * page/Page.h:
26119         (Page):
26120
26121         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26122         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26123         (ScrollingCoordinatorMac):
26124         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26125         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26126         (WebCore):
26127         * page/scrolling/ScrollingCoordinator.cpp:
26128         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26129         (WebCore):
26130         * page/scrolling/ScrollingCoordinator.h:
26131         (ScrollingCoordinator):
26132
26133         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26134         properties that are specific to different types of nodes.
26135         * page/scrolling/ScrollingStateNode.cpp:
26136         (WebCore::ScrollingStateNode::writeIndent):
26137         (WebCore):
26138         (WebCore::ScrollingStateNode::dumpNode):
26139         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26140         * page/scrolling/ScrollingStateNode.h:
26141         (WebCore):
26142         (ScrollingStateNode):
26143         * page/scrolling/ScrollingStateScrollingNode.cpp:
26144         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26145         (WebCore):
26146         * page/scrolling/ScrollingStateScrollingNode.h:
26147         (ScrollingStateScrollingNode):
26148
26149 2012-11-01  Kenneth Russell  <kbr@google.com>
26150
26151         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26152         https://bugs.webkit.org/show_bug.cgi?id=100971
26153
26154         Reviewed by Stephen White.
26155
26156         The ImageBuffer::copyToPlatformTexture restriction added in
26157         r132965 was too restrictive. Allow RGB textures to prevent
26158         performance regressions.
26159
26160         * html/canvas/WebGLRenderingContext.cpp:
26161         (WebCore):
26162         (WebCore::WebGLRenderingContext::texImage2D):
26163         * platform/graphics/ImageBuffer.h:
26164         (ImageBuffer):
26165
26166 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26167
26168         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26169         https://bugs.webkit.org/show_bug.cgi?id=100694
26170         Internal PR: 220488
26171
26172         Internally reviewed by Lianghui Chen, Joe Mason
26173         Reviewed by Rob Buis.
26174
26175         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26176         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26177
26178         No new tests for platform specific internal change.
26179
26180         * history/blackberry/HistoryItemViewState.h:
26181         (HistoryItemViewState):
26182
26183 2012-11-01  Alec Flett  <alecflett@chromium.org>
26184
26185         IndexedDB: add methods to support id-based backend APIs
26186         https://bugs.webkit.org/show_bug.cgi?id=100425
26187
26188         Reviewed by Tony Chang.
26189
26190         First half of refactor involves adding a number of methods that
26191         are int64_t-based rather than String-based. As a part of this, the
26192         IDB*Metadata structs and the backend objectStore/index maps all
26193         use int64_t as keys, rather than String.
26194
26195         In addition, there were a number of cleanups that came out of the
26196         refactor:
26197
26198         - The list of object stores active in a transaction is now
26199           maintained by the frontend IDBTransaction rather than the backend
26200           IDBTransactionBackendImpl. This also had a simplifying rippling
26201           effect through other call signatures.
26202
26203         - I was able to remove an apparently old FIXME from
26204           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26205
26206         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26207           simpler since the id is now easily available in the
26208           IDBIndexMetadata.
26209
26210         - A number of methods got simpler in their int64_t versions,
26211           specifically dropping a number of ExceptionCodes.
26212
26213         There is also some glue code
26214         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26215         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26216
26217         No new tests, no new functionality as this is just a refactor.
26218
26219         * Modules/indexeddb/IDBDatabase.cpp:
26220         (WebCore::IDBDatabase::objectStoreNames):
26221         (WebCore::IDBDatabase::createObjectStore):
26222         (WebCore::IDBDatabase::deleteObjectStore):
26223         (WebCore::IDBDatabase::transaction):
26224         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26225         (WebCore::IDBDatabaseBackendImpl::metadata):
26226         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26227         (WebCore::IDBDatabaseBackendImpl::objectStore):
26228         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26229         (WebCore):
26230         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26231         (WebCore::IDBDatabaseBackendImpl::transaction):
26232         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26233         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26234         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26235         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26236         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26237         (IDBDatabaseBackendImpl):
26238         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26239         (IDBDatabaseBackendInterface):
26240         * Modules/indexeddb/IDBIndex.h:
26241         (WebCore::IDBIndex::id):
26242         (WebCore::IDBIndex::openKeyCursor):
26243         * Modules/indexeddb/IDBIndexBackendInterface.h:
26244         * Modules/indexeddb/IDBMetadata.h:
26245         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26246         (IDBIndexMetadata):
26247         (IDBObjectStoreMetadata):
26248         (WebCore::IDBObjectStoreMetadata::containsIndex):
26249         (IDBDatabaseMetadata):
26250         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26251         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26252         * Modules/indexeddb/IDBObjectStore.cpp:
26253         (WebCore::IDBObjectStore::indexNames):
26254         (WebCore::IDBObjectStore::put):
26255         (WebCore::IDBObjectStore::createIndex):
26256         (WebCore::IDBObjectStore::index):
26257         (WebCore::IDBObjectStore::deleteIndex):
26258         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26259         (WebCore::IDBObjectStoreBackendImpl::put):
26260         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26261         (WebCore):
26262         (WebCore::makeIndexWriters):
26263         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26264         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26265         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26266         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26267         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26268         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26269         (WebCore::IDBObjectStoreBackendImpl::index):
26270         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26271         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26272         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26273         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26274         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26275         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26276         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26277         (IDBObjectStoreBackendImpl):
26278         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26279         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26280         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26281         * Modules/indexeddb/IDBRequest.cpp:
26282         (WebCore::IDBRequest::onSuccess):
26283         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26284         * Modules/indexeddb/IDBTransaction.cpp:
26285         (WebCore::IDBTransaction::create):
26286         (WebCore::IDBTransaction::IDBTransaction):
26287         (WebCore::IDBTransaction::objectStore):
26288         * Modules/indexeddb/IDBTransaction.h:
26289         (IDBTransaction):
26290         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26291         (WebCore::IDBTransactionBackendImpl::create):
26292         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26293         (WebCore::IDBTransactionBackendImpl::objectStore):
26294         (WebCore):
26295         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26296         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26297         (IDBTransactionBackendImpl):
26298         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26299
26300 2012-11-01  Adam Barth  <abarth@webkit.org>
26301
26302         [V8] The DOMWrapperVisitor abstraction is no longer needed
26303         https://bugs.webkit.org/show_bug.cgi?id=100965
26304
26305         Reviewed by Kentaro Hara.
26306
26307         This patch removes the DOMWrapperVisitor interface because it is no
26308         longer needed. As a consequence, DOMWrapperMaps no longer need to
26309         support enumeration, and we can move more DOM objects to use the faster
26310         intrusive wrappers.
26311
26312         There was one remaining user of DOMWrapperVisitor in the
26313         ScriptProfiler, which I've moved over to enumerating objects directly
26314         from V8, similar to a function above it in the same file.
26315
26316         * bindings/v8/DOMWrapperMap.h:
26317         (WebCore):
26318         (DOMWrapperMap):
26319         * bindings/v8/IntrusiveDOMWrapperMap.h:
26320         * bindings/v8/ScriptProfiler.cpp:
26321         (WebCore::ScriptProfiler::visitNodeWrappers):
26322         (WebCore::ScriptProfiler::visitExternalArrays):
26323
26324 2012-11-01  Mike West  <mkwst@chromium.org>
26325
26326         CSP 1.0: Warn when old-style directives encountered.
26327         https://bugs.webkit.org/show_bug.cgi?id=100883
26328
26329         Reviewed by Adam Barth.
26330
26331         In Mozilla's pre-W3C-spec implementation, a few directives are
26332         implemented that were either renamed, reworked, or removed from CSP 1.0.
26333         This patch adds special warning messages for three of those directives
26334         to set developer expectations correctly.
26335
26336         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26337
26338         * page/ContentSecurityPolicy.cpp:
26339         (WebCore::CSPDirectiveList::parseDirective):
26340         (WebCore::CSPDirectiveList::addDirective):
26341         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26342         * page/ContentSecurityPolicy.h:
26343             Rename 'reportUnrecognizedDirectives' to
26344             'reportUnsupportedDirectives', and teach it to give more descriptive
26345             error messages when encountering 'allow', 'options', and
26346             'policy-uri'.
26347
26348 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26349
26350         Web Inspector: Update CodeMirror to v3
26351         https://bugs.webkit.org/show_bug.cgi?id=99319
26352
26353         Reviewed by Vsevolod Vlasov.
26354
26355         Updated to ToT v3.
26356
26357         * inspector/front-end/CodeMirrorTextEditor.js:
26358         (WebInspector.CodeMirrorTextEditor):
26359         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26360         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26361         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26362         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26363         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26364         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26365         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26366         (WebInspector.CodeMirrorTextEditor.prototype._change):
26367         * inspector/front-end/cm/cmdevtools.css:
26368         (.CodeMirror):
26369         (.CodeMirror-linenumber):
26370         (.cm-breakpoint):
26371         * inspector/front-end/cm/codemirror.css:
26372         (.CodeMirror):
26373         (.CodeMirror-scroll):
26374         (.CodeMirror-lines):
26375         (.CodeMirror pre):
26376         (.CodeMirror-scrollbar-filler):
26377         (.CodeMirror-gutters):
26378         (.CodeMirror-linenumbers):
26379         (.CodeMirror-linenumber):
26380         (.CodeMirror pre.CodeMirror-cursor):
26381         (.CodeMirror pre.CodeMirror-secondarycursor):
26382         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26383         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26384         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26385         (.cm-s-default .cm-keyword):
26386         (.cm-s-default .cm-atom):
26387         (.cm-s-default .cm-number):
26388         (.cm-s-default .cm-def):
26389         (.cm-s-default .cm-variable):
26390         (.cm-s-default .cm-variable-2):
26391         (.cm-s-default .cm-variable-3):
26392         (.cm-s-default .cm-property):
26393         (.cm-s-default .cm-operator):
26394         (.cm-s-default .cm-comment):
26395         (.cm-s-default .cm-string):
26396         (.cm-s-default .cm-string-2):
26397         (.cm-s-default .cm-meta):
26398         (.cm-s-default .cm-error):
26399         (.cm-s-default .cm-qualifier):
26400         (.cm-s-default .cm-builtin):
26401         (.cm-s-default .cm-bracket):
26402         (.cm-s-default .cm-tag):
26403         (.cm-s-default .cm-attribute):
26404         (.cm-s-default .cm-header):
26405         (.cm-s-default .cm-quote):
26406         (.cm-s-default .cm-hr):
26407         (.cm-s-default .cm-link):
26408         (.cm-header, .cm-strong):
26409         (.cm-em):
26410         (.cm-emstrong):
26411         (.cm-link):
26412         (.cm-invalidchar):
26413         (div.CodeMirror span.CodeMirror-matchingbracket):
26414         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26415         (.CodeMirror-sizer):
26416         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26417         (.CodeMirror-vscrollbar):
26418         (.CodeMirror-hscrollbar):
26419         (.CodeMirror-gutter):
26420         (.CodeMirror-gutter-elt):
26421         (.CodeMirror-linebackground):
26422         (.CodeMirror-linewidget):
26423         (.CodeMirror-measure):
26424         (.CodeMirror-measure pre):
26425         (.CodeMirror-selected):
26426         (.CodeMirror-focused .CodeMirror-selected):
26427         (.CodeMirror span):
26428         * inspector/front-end/cm/codemirror.js:
26429         (window.CodeMirror.):
26430         (window.CodeMirror):
26431         * inspector/front-end/utilities.js:
26432
26433 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26434
26435         [BlackBerry] Update BB10 form theme.
26436         https://bugs.webkit.org/show_bug.cgi?id=100760
26437
26438         Reviewed by Rob Buis.
26439
26440         RIM PR 235194.
26441
26442         Check img pointer is null, if so, do early return.
26443
26444         * platform/blackberry/RenderThemeBlackBerry.cpp:
26445         (WebCore::drawControl):
26446         (WebCore::drawThreeSlice):
26447         (WebCore::drawNineSlice):
26448
26449 2012-11-01  Adam Barth  <abarth@webkit.org>
26450
26451         [V8] The V8DOMMap visitors are no longer needed
26452         https://bugs.webkit.org/show_bug.cgi?id=100963
26453
26454         Reviewed by Kentaro Hara.
26455
26456         This patch inlines visitAllDOMNodes into its one caller (and removes
26457         one layer of visitor adaptor abstraction).
26458
26459         * bindings/v8/ScriptProfiler.cpp:
26460         (WebCore::ScriptProfiler::visitNodeWrappers):
26461         * bindings/v8/V8DOMMap.cpp:
26462         * bindings/v8/V8DOMMap.h:
26463         (WebCore):
26464
26465 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26466
26467         [BlackBerry] Update BB10 form theme.
26468         https://bugs.webkit.org/show_bug.cgi?id=100760
26469
26470         Reviewed by Rob Buis.
26471
26472         RIM PR 235194.
26473
26474         Check img pointer is null, if so, do early return.
26475
26476         * platform/blackberry/RenderThemeBlackBerry.cpp:
26477         (WebCore::drawControl):
26478         (WebCore::drawThreeSlice):
26479         (WebCore::drawNineSlice):
26480
26481 2012-11-01  Adam Barth  <abarth@webkit.org>
26482
26483         Unreviewed. Build fix.
26484
26485         * bindings/v8/V8GCController.cpp:
26486
26487 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26488
26489         [EFL][WK2] Add Ewk_Auth_Request API
26490         https://bugs.webkit.org/show_bug.cgi?id=100858
26491
26492         Reviewed by Kenneth Rohde Christiansen.
26493
26494         Provide an AuthenticationClient for EFL port in WebCore so
26495         that we can handle authentication similarly to other ports
26496         of WebKit.
26497
26498         No new tests, no behavior change for layout tests.
26499
26500         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26501         * loader/ResourceLoader.cpp:
26502         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26503         * platform/network/ResourceHandle.h:
26504         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26505         most of the other ports.
26506         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26507         of previousFailureCount member. It should be 1 if we are retrying
26508         authentication and 0 otherwise, not the opposite.
26509         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26510         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26511         port of AuthenticationClient methods.
26512         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26513         (WebCoreSynchronousLoader):
26514         (WebCore):
26515         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26516         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26517         (WebCore::ResourceHandle::receivedCredential):
26518         (WebCore::ResourceHandle::receivedCancellation):
26519         (WebCore::authenticateCallback):
26520         (WebCore::ResourceHandle::defaultSession):
26521
26522 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26523
26524         WebIconDatabase: Properly clean up on destruction
26525         https://bugs.webkit.org/show_bug.cgi?id=100237
26526
26527         Reviewed by Brady Eidson.
26528
26529         It's now possible that the IconDatabase gets destroyed since WebKit2
26530         isn't using it as a singleton.
26531
26532         Check that the database was properly closed rather than asserting that
26533         it won't get deleted.
26534
26535         * loader/icon/IconDatabase.cpp:
26536         (WebCore::IconDatabase::~IconDatabase):
26537
26538 2012-11-01  Alexei Filippov  <alph@chromium.org>
26539
26540         Web Inspector: make component subitems use parent color in native memory snapshots.
26541         https://bugs.webkit.org/show_bug.cgi?id=100876
26542
26543         A component subitems use the color of the component itself if the color
26544         is not explicitly specified for the subitem.
26545
26546         Reviewed by Yury Semikhatsky.
26547
26548         * inspector/front-end/NativeMemorySnapshotView.js:
26549         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26550         (WebInspector.MemoryBlockViewProperties._initialize):
26551         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26552
26553 2012-11-01  Emil A Eklund  <eae@chromium.org>
26554
26555         [subpixel] Change intrinsicSize to LayoutUnit
26556         https://bugs.webkit.org/show_bug.cgi?id=99104
26557
26558         Reviewed by Levi Weintraub.
26559
26560         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26561         rounding problems when zooming/scaling. Also change imageSize to
26562         LayoutUnit as it can return a scaled size.
26563
26564         Test: fast/sub-pixel/tiled-canvas-elements.html
26565
26566         * html/ImageDocument.cpp:
26567         (WebCore::ImageDocumentParser::finish):
26568         * loader/cache/CachedImage.cpp:
26569         (WebCore::CachedImage::imageSizeForRenderer):
26570         * loader/cache/CachedImage.h:
26571         (CachedImage):
26572         * platform/graphics/FractionalLayoutSize.h:
26573         (FractionalLayoutSize):
26574         (WebCore::FractionalLayoutSize::scale):
26575         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26576         * rendering/RenderBox.h:
26577         (WebCore::RenderBox::intrinsicSize):
26578         * rendering/RenderHTMLCanvas.cpp:
26579         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26580         * rendering/RenderImage.cpp:
26581         (WebCore::RenderImage::imageChanged):
26582         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26583         (WebCore::RenderImage::paintReplaced):
26584         (WebCore::RenderImage::minimumReplacedHeight):
26585         * rendering/RenderImage.h:
26586         (RenderImage):
26587         * rendering/RenderImageResource.h:
26588         (WebCore::RenderImageResource::imageSize):
26589         * rendering/RenderImageResourceStyleImage.h:
26590         * rendering/RenderReplaced.cpp:
26591         (WebCore::RenderReplaced::RenderReplaced):
26592         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26593         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26594         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26595         * rendering/RenderReplaced.h:
26596         (RenderReplaced):
26597         (WebCore::RenderReplaced::minimumReplacedHeight):
26598         (WebCore::RenderReplaced::setIntrinsicSize):
26599         * rendering/RenderVideo.cpp:
26600         (WebCore::RenderVideo::updateIntrinsicSize):
26601         (WebCore::RenderVideo::calculateIntrinsicSize):
26602         (WebCore::RenderVideo::videoBox):
26603         (WebCore::RenderVideo::minimumReplacedHeight):
26604         * rendering/RenderVideo.h:
26605         (RenderVideo):
26606         * rendering/style/StyleCachedImage.cpp:
26607         (WebCore::StyleCachedImage::imageSize):
26608         * rendering/style/StyleCachedImage.h:
26609         (StyleCachedImage):
26610         * rendering/style/StyleCachedImageSet.cpp:
26611         (WebCore::StyleCachedImageSet::imageSize):
26612         * rendering/style/StyleCachedImageSet.h:
26613         (StyleCachedImageSet):
26614         * rendering/style/StyleGeneratedImage.cpp:
26615         (WebCore::StyleGeneratedImage::imageSize):
26616         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26617         * rendering/style/StyleGeneratedImage.h:
26618         (StyleGeneratedImage):
26619         * rendering/style/StyleImage.h:
26620         (StyleImage):
26621         * rendering/style/StylePendingImage.h:
26622
26623 2012-11-01  Adam Barth  <abarth@webkit.org>
26624
26625         [V8] Unify the V8GCController visitors
26626         https://bugs.webkit.org/show_bug.cgi?id=100897
26627
26628         Reviewed by Eric Seidel.
26629
26630         After this patch, we use a single visitor for all DOM wrappers,
26631         regardless of type. We also visit all the wrappers in one pass by
26632         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26633         visitAllDOMNodes.
26634
26635         This patch also introduces a wrapper class ID for non-Node DOM objects.
26636         Previously, only DOM nodes had a class ID.
26637
26638         * bindings/v8/IntrusiveDOMWrapperMap.h:
26639         * bindings/v8/ScriptProfiler.cpp:
26640         (WebCore::retainedDOMInfo):
26641         (WebCore::ScriptProfiler::initialize):
26642         * bindings/v8/V8DOMMap.cpp:
26643         (WebCore::visitAllDOMNodes):
26644         * bindings/v8/V8DOMWrapper.cpp:
26645         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26646         * bindings/v8/V8DOMWrapper.h:
26647         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26648         * bindings/v8/V8GCController.cpp:
26649         (WebCore::GCHandleVisitor::notifyFinished):
26650         (GCHandleVisitor):
26651         (WebCore::V8GCController::majorGCPrologue):
26652         * bindings/v8/WrapperTypeInfo.h:
26653         (WebCore):
26654
26655 2012-11-01  Stephen White  <senorblanco@chromium.org>
26656
26657         Unreviewed, rolling out r133143.
26658         http://trac.webkit.org/changeset/133143
26659         https://bugs.webkit.org/show_bug.cgi?id=96894
26660
26661         Causing content_browsertests failures
26662
26663         * CMakeLists.txt:
26664         * GNUmakefile.list.am:
26665         * Target.pri:
26666         * WebCore.gypi:
26667         * WebCore.vcproj/WebCore.vcproj:
26668         * WebCore.xcodeproj/project.pbxproj:
26669         * dom/DeviceOrientationClient.h:
26670         (DeviceOrientationClient):
26671         * dom/DeviceOrientationController.cpp:
26672         (WebCore::DeviceOrientationController::DeviceOrientationController):
26673         (WebCore):
26674         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26675         (WebCore::DeviceOrientationController::timerFired):
26676         (WebCore::DeviceOrientationController::addListener):
26677         (WebCore::DeviceOrientationController::removeListener):
26678         (WebCore::DeviceOrientationController::removeAllListeners):
26679         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26680         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26681         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26682         (WebCore::DeviceOrientationController::supplementName):
26683         * dom/DeviceOrientationController.h:
26684         (WebCore):
26685         (DeviceOrientationController):
26686         (WebCore::DeviceOrientationController::isActive):
26687         (WebCore::DeviceOrientationController::client):
26688         (WebCore::DeviceOrientationController::from):
26689         * dom/Document.cpp:
26690         (WebCore::Document::suspendActiveDOMObjects):
26691         (WebCore::Document::resumeActiveDOMObjects):
26692         * loader/EmptyClients.h:
26693         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26694         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26695         * page/DOMWindow.cpp:
26696         (WebCore::DOMWindow::addEventListener):
26697         (WebCore::DOMWindow::removeEventListener):
26698         (WebCore::DOMWindow::removeAllEventListeners):
26699         * page/DeviceClient.h: Removed.
26700         * page/DeviceController.cpp: Removed.
26701         * page/DeviceController.h: Removed.
26702
26703 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26704
26705         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26706         https://bugs.webkit.org/show_bug.cgi?id=100923.
26707
26708         Reviewed by Kenneth Rohde Christiansen.
26709
26710         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26711         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26712
26713         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26714         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26715
26716 2012-11-01  Andreas Kling  <kling@webkit.org>
26717
26718         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26719         <http://webkit.org/b/100753>
26720
26721         Unreviewed debug bot crash fix after r133138.
26722
26723         There's additional padding after StylePropertySet and ElementAttributeData
26724         in 64-bit debug builds since there are additional members in RefCountedBase.
26725         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26726
26727         * css/StylePropertySet.cpp:
26728         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26729         * dom/ElementAttributeData.cpp:
26730         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26731         (WebCore::ElementAttributeData::createImmutable):
26732         (WebCore::ElementAttributeData::reportMemoryUsage):
26733
26734 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26735
26736         FEImage::m_document is never cleared. Why not?
26737         https://bugs.webkit.org/show_bug.cgi?id=99243
26738
26739         Reviewed by Dirk Schulze.
26740
26741         Adding a comment to explain why the failure to clear m_document is not a problem.
26742
26743         No new tests because no code change at all.
26744
26745         * svg/graphics/filters/SVGFEImage.h:
26746         (FEImage): Add a comment on the lifetime of m_document.
26747
26748 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26749
26750         Web Inspector: Timeline: make "addRecord" unambiguous
26751         https://bugs.webkit.org/show_bug.cgi?id=100761
26752
26753         Reviewed by Pavel Feldman.
26754
26755         TimelinePresentationModel.addRecord accepts two parameters:
26756         record and parentRecord. parentRecord is always root record.
26757         Make this explicit by removing parentRecord parameter.
26758
26759         * inspector/front-end/TimelinePanel.js: Removed parameter.
26760         * inspector/front-end/TimelinePresentationModel.js:
26761         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26762         Used root recoed instead of parent record.
26763
26764 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26765
26766         [BlackBerry] Browser prematurely sends wrong credentials
26767         https://bugs.webkit.org/show_bug.cgi?id=100585
26768
26769         Reviewed by George Staikos.
26770
26771         Don't send credentials to the server before been challenged.
26772
26773         * platform/network/blackberry/NetworkManager.cpp:
26774         (WebCore::NetworkManager::startJob):
26775
26776 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26777
26778         SVG as an image may recreate the renderer on zoom
26779         https://bugs.webkit.org/show_bug.cgi?id=99508
26780
26781         Reviewed by Abhishek Arya.
26782
26783         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26784         at the start of the painting method and re-uses the pointer at the end
26785         of the method. However, when the page is zoomed the renderer may be
26786         detached mid-method, thus leaving a stray pointer. The fix is to
26787         re-fetch the pointer after the zooms.
26788
26789         Test: svg/as-image/img-zoom-svg-stylesheet.html
26790
26791         * svg/graphics/SVGImage.cpp:
26792         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26793         the zoom operations.
26794
26795 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26796
26797         Web Inspector: introduce Inspector.detached message containing termination cause.
26798         https://bugs.webkit.org/show_bug.cgi?id=100948
26799
26800         Reviewed by Yury Semikhatsky.
26801
26802         Now protocol clients have more information to process connection termination.
26803
26804         * English.lproj/localizedStrings.js:
26805         * inspector/Inspector.json:
26806         * inspector/front-end/InspectorFrontendHostStub.js:
26807         (WebInspector.RemoteDebuggingTerminatedScreen):
26808         * inspector/front-end/inspector.js:
26809         (WebInspector.loaded.WebInspector.socket.onopen):
26810         (WebInspector.loaded):
26811         (WebInspector.detached):
26812
26813 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26814
26815         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26816         https://bugs.webkit.org/show_bug.cgi?id=100593
26817
26818         Reviewed by Pavel Feldman.
26819
26820         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26821         Removed now redundant callback from UISourceCode.setFormatted().
26822
26823         * inspector/front-end/BreakpointManager.js:
26824         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26825         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26826         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26827         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26828         * inspector/front-end/ScriptsPanel.js:
26829         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26830         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26831         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26832         * inspector/front-end/UISourceCode.js:
26833         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26834         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26835         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26836         (WebInspector.UISourceCode.prototype.setFormatted):
26837
26838 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26839
26840         Web Inspector: Output code evaluated in the console the same as console.log
26841         https://bugs.webkit.org/show_bug.cgi?id=100695
26842
26843         Reviewed by Pavel Feldman.
26844
26845         Added an option to return object preview from evaluation commands in the protocol.
26846         The option is used to generate preview for console eval results.
26847
26848         * inspector/InjectedScript.cpp:
26849         (WebCore::InjectedScript::evaluate):
26850         (WebCore::InjectedScript::callFunctionOn):
26851         (WebCore::InjectedScript::evaluateOnCallFrame):
26852         * inspector/InjectedScript.h:
26853         (InjectedScript):
26854         * inspector/InjectedScriptSource.js:
26855         (.):
26856         * inspector/Inspector.json:
26857         * inspector/InspectorDebuggerAgent.cpp:
26858         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26859         * inspector/InspectorDebuggerAgent.h:
26860         (InspectorDebuggerAgent):
26861         * inspector/InspectorRuntimeAgent.cpp:
26862         (WebCore::InspectorRuntimeAgent::evaluate):
26863         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26864         * inspector/InspectorRuntimeAgent.h:
26865         (InspectorRuntimeAgent):
26866         * inspector/front-end/ConsoleMessage.js:
26867         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26868         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26869         * inspector/front-end/ConsoleView.js:
26870         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26871         * inspector/front-end/DebuggerModel.js:
26872         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26873         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26874         * inspector/front-end/ExtensionServer.js:
26875         (WebInspector.ExtensionServer.prototype.evaluate):
26876         * inspector/front-end/JavaScriptSourceFrame.js:
26877         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26878         * inspector/front-end/RemoteObject.js:
26879         (WebInspector.RemoteObject.prototype.):
26880         (WebInspector.RemoteObject.prototype.callFunction):
26881         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26882         * inspector/front-end/RuntimeModel.js:
26883         (WebInspector.RuntimeModel.prototype.evaluate):
26884         (WebInspector.RuntimeModel.prototype.evaluated):
26885         * inspector/front-end/WatchExpressionsSidebarPane.js:
26886         (WebInspector.WatchExpressionsSection.prototype.update):
26887
26888 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26889
26890         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26891         https://bugs.webkit.org/show_bug.cgi?id=100594
26892
26893         Reviewed by Yury Semikhatsky.
26894
26895         Removed obsolete WorkingCopyCommitted listener.
26896         Removed redundant code that removes breakpoints from _innerSetContent.
26897
26898         * inspector/front-end/JavaScriptSourceFrame.js:
26899         (WebInspector.JavaScriptSourceFrame):
26900         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26901
26902 2012-11-01  Andreas Kling  <kling@webkit.org>
26903
26904         Update average StylePropertySet size estimation.
26905         <http://webkit.org/b/100940>
26906
26907         Reviewed by Antti Koivisto.
26908
26909         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26910         size to keep it in sync with the changed object memory layout.
26911
26912         * css/StylePropertySet.cpp:
26913         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26914         (WebCore::StylePropertySet::createImmutable):
26915         (WebCore::StylePropertySet::averageSizeInBytes):
26916         (WebCore::StylePropertySet::reportMemoryUsage):
26917
26918
26919 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26920
26921         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26922         https://bugs.webkit.org/show_bug.cgi?id=100628.
26923
26924         Reviewed by Kenneth Rohde Christiansen.
26925
26926         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26927         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26928         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26929         display from offscreenwindow.
26930         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26931
26932         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26933         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26934
26935 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26936
26937         [CSSRegions]Former auto-height regions should not ignore their defined height
26938         https://bugs.webkit.org/show_bug.cgi?id=100749
26939
26940         Reviewed by Julien Chaffraix.
26941
26942         When a region with height auto has its height defined, we should also clear the override logical content height.
26943         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26944
26945         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26946
26947         * rendering/RenderRegion.cpp:
26948         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26949
26950 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26951
26952         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26953         https://bugs.webkit.org/show_bug.cgi?id=100934
26954
26955         Reviewed by Alexander Pavlov.
26956
26957         * css/CSSImageGeneratorValue.cpp:
26958         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26959         memory usage data.
26960
26961 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
26962
26963         Add DeviceController base-class to remove duplication of DeviceXXXControler
26964         https://bugs.webkit.org/show_bug.cgi?id=96894
26965
26966         Reviewed by Hajime Morita.
26967
26968         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
26969         And soon-to-be-added DeviceMotionController and ProximityController.
26970
26971         Covered by existing tests.
26972
26973         * CMakeLists.txt:
26974         * GNUmakefile.list.am:
26975         * Target.pri:
26976         * WebCore.gypi:
26977         * WebCore.vcproj/WebCore.vcproj:
26978         * WebCore.xcodeproj/project.pbxproj:
26979         * dom/DeviceOrientationClient.h:
26980         * dom/DeviceOrientationController.cpp:
26981         Remove member functions to move to DeviceController.
26982         - addListener(), removeListener(), removeAllListeners(), isActive()
26983         (WebCore::DeviceOrientationController::DeviceOrientationController):
26984         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26985         (WebCore::DeviceOrientationController::client):
26986         (WebCore::DeviceOrientationController::hasLastData):
26987         (WebCore::DeviceOrientationController::getLastEvent):
26988         (WebCore::DeviceOrientationController::from):
26989         (WebCore):
26990         * dom/DeviceOrientationController.h:
26991         (WebCore):
26992         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26993         (DeviceOrientationController):
26994         * dom/Document.cpp:
26995         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
26996         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
26997         (WebCore::Document::suspendActiveDOMObjects):
26998         (WebCore::Document::resumeActiveDOMObjects):
26999         * loader/EmptyClients.h:
27000         (EmptyDeviceClient):
27001         (WebCore::EmptyDeviceClient::startUpdating):
27002         (WebCore::EmptyDeviceClient::stopUpdating):
27003         (WebCore):
27004         * page/DOMWindow.cpp:
27005         (WebCore::DOMWindow::addEventListener):
27006         (WebCore::DOMWindow::removeEventListener):
27007         (WebCore::DOMWindow::removeAllEventListeners):
27008         * page/DeviceClient.h: Added.
27009         (WebCore):
27010         (DeviceClient):
27011         (WebCore::DeviceClient::~DeviceClient):
27012         * page/DeviceController.cpp: Added.
27013         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
27014         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
27015         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
27016         (WebCore):
27017         (WebCore::DeviceController::DeviceController):
27018         (WebCore::DeviceController::addDeviceEventListener):
27019         (WebCore::DeviceController::removeDeviceEventListener):
27020         (WebCore::DeviceController::removeAllDeviceEventListeners):
27021         (WebCore::DeviceController::dispatchDeviceEvent):
27022         (WebCore::DeviceController::fireDeviceEvent):
27023         * page/DeviceController.h: Added.
27024         (WebCore):
27025         (DeviceController):
27026         (WebCore::DeviceController::~DeviceController):
27027         (WebCore::DeviceController::isActive):
27028         (WebCore::DeviceController::client):
27029         (WebCore::DeviceController::hasLastData):
27030         (WebCore::DeviceController::getLastEvent):
27031
27032 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
27033
27034         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
27035         https://bugs.webkit.org/show_bug.cgi?id=100497
27036
27037         Reviewed by Alexander Pavlov.
27038
27039         Added memory reporting method to chromium implementation of ResourceRequest.
27040
27041         * platform/network/ResourceRequestBase.cpp:
27042         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
27043         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
27044         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
27045         in the descendant but ResourceRequestBase doesn't have any virtual methods
27046         and shouldn't be used directly(ResourceRequest should be used instead).
27047         * platform/network/ResourceRequestBase.h:
27048         (ResourceRequestBase):
27049         * platform/network/chromium/ResourceRequest.cpp:
27050         (WebCore::ResourceRequest::reportMemoryUsage):
27051         (WebCore):
27052         * platform/network/chromium/ResourceRequest.h:
27053         (ResourceRequest):
27054
27055 2012-11-01  Andreas Kling  <kling@webkit.org>
27056
27057         Pack immutable StylePropertySets harder on 64-bit.
27058         <http://webkit.org/b/100753>
27059         <rdar://problem/12599155>
27060
27061         Reviewed by Antti Koivisto.
27062
27063         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
27064         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
27065         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
27066
27067         Old object layout:
27068
27069             Ref count                   (4 bytes)
27070             Metadata                    (4 bytes)
27071             CSSProperty [N]             (16 bytes each)
27072
27073         New object layout:
27074
27075             Ref count                   (4 bytes)
27076             Metadata                    (4 bytes)
27077             CSSValue* [N]               (8 bytes each)
27078             StylePropertyMetadata [N]   (4 bytes each)
27079
27080         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
27081
27082         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
27083         and by the StylePropertySet constructors.
27084
27085         * css/CSSProperty.cpp:
27086         * css/CSSProperty.h:
27087         (CSSProperty):
27088         (WebCore::CSSProperty::CSSProperty):
27089         (WebCore::CSSProperty::id):
27090         (WebCore::CSSProperty::shorthandID):
27091         (WebCore::CSSProperty::isImportant):
27092         (WebCore::CSSProperty::metadata):
27093
27094             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
27095
27096         * css/StylePropertySet.cpp:
27097         (WebCore::immutableStylePropertySetSize):
27098
27099             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27100
27101         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27102         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27103         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27104         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27105         (WebCore::StylePropertySet::reportMemoryUsage):
27106         (WebCore::StylePropertySet::PropertyReference::cssName):
27107         (WebCore::StylePropertySet::PropertyReference::cssText):
27108         * css/StylePropertySet.h:
27109         (WebCore::StylePropertySet::PropertyReference::id):
27110         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27111         (WebCore::StylePropertySet::PropertyReference::isImportant):
27112         (WebCore::StylePropertySet::PropertyReference::isInherited):
27113         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27114         (PropertyReference):
27115         (WebCore::StylePropertySet::PropertyReference::value):
27116         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27117         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27118         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27119         (StylePropertySet):
27120         (ImmutableStylePropertySet):
27121         (WebCore::StylePropertySet::immutableValueArray):
27122         (WebCore::StylePropertySet::immutableMetadataArray):
27123
27124             Refactored internal storage for StylePropertySet.
27125
27126 2012-11-01  Kent Tamura  <tkent@chromium.org>
27127
27128         Remove unused Locale::parseDateTime
27129         https://bugs.webkit.org/show_bug.cgi?id=100910
27130
27131         Reviewed by Kentaro Hara.
27132
27133         For date/time input types, InputType::convertFromVisibleValue is never
27134         called. convertFromVisibleValue is called when an inner editable node is
27135         updated. However input elements don't have such editable nodes if
27136         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27137         inner editable node otherwise because we open date/time pickers when a
27138         user try to change the field value.
27139
27140         We had used convertFromVisibleValue for input[type=date] with an old UI.
27141
27142         No new tests because of no behavior changes.
27143
27144         * html/BaseDateAndTimeInputType.cpp:
27145         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27146         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27147
27148         * platform/text/PlatformLocale.h: Remove parseDateTime.
27149
27150         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27151         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27152
27153         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27154
27155         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27156         * platform/text/mac/LocaleMac.mm: Ditto.
27157         * platform/text/win/LocaleWin.h:
27158         - Remove parseDateTime, its helpers, and m_baseYear.
27159         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27160           and formatDate. They don't exist.
27161         * platform/text/win/LocaleWin.cpp:
27162         Remove the above functions.
27163         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27164
27165 2012-10-31  Nate Chapin  <japhet@chromium.org>
27166
27167         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27168         https://bugs.webkit.org/show_bug.cgi?id=100901
27169
27170         Reviewed by Adam Barth.
27171
27172         No new tests, refactor only.
27173
27174         * inspector/InspectorPageAgent.cpp:
27175         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27176         * loader/DocumentThreadableLoader.cpp:
27177         (WebCore::DocumentThreadableLoader::notifyFinished):
27178         * loader/FrameLoader.cpp:
27179         (WebCore::FrameLoader::loadInSameDocument):
27180         * loader/SubresourceLoader.cpp:
27181         (WebCore::SubresourceLoader::didFail):
27182         (WebCore::SubresourceLoader::willCancel):
27183         * loader/cache/CachedResource.cpp:
27184         (WebCore::CachedResource::stopLoading):
27185         * loader/cache/CachedResource.h:
27186         (WebCore::CachedResource::wasCanceled):
27187         (WebCore::CachedResource::errorOccurred):
27188         (WebCore::CachedResource::loadFailedOrCanceled):
27189
27190 2012-10-31  Stephen White  <senorblanco@chromium.org>
27191
27192         Unreviewed, rolling out r133122.
27193         http://trac.webkit.org/changeset/133122
27194         https://bugs.webkit.org/show_bug.cgi?id=99083
27195
27196         Broke Chromium Win, Android, ChromeOS builds
27197
27198         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27199         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27200         (WebCore::GraphicsLayerChromium::paint):
27201         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27202         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27203         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27204         (OpaqueRectTrackingContentLayerDelegate):
27205
27206 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27207
27208         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27209         https://bugs.webkit.org/show_bug.cgi?id=83664
27210
27211         Reviewed by Hajime Morita.
27212
27213         The original code updates inline style during attach(). However,
27214         the attach would be invoked from Element::recalcStyle()'s reattach().
27215         If updating inline styles during the reattach(), style related flags,
27216         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27217         reattach(). So the inline styles are not updated in next
27218         setNeedsStyleRecalc, because ProgressValueElement has already had
27219         InlineStyleChange (existingChanegType == InlineStyleChange) and
27220         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27221
27222         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27223
27224         * html/HTMLProgressElement.cpp:
27225         (WebCore::HTMLProgressElement::attach):
27226         Copied updateFromElement from didElementStateChange. If removing the
27227         update, indeterminate-progress-001.html and progress-element.html
27228         under fast/dom/HTMLProgressElement will fail. We still need attach()
27229         and updateFromElement. To remove the attach(), need more refactoring,
27230         i.e. investigating where attach() is invoked from and modifying all
27231         related codes.
27232         (WebCore::HTMLProgressElement::createShadowSubtree):
27233         Initialize m_value by indeterminate-position. The value is default
27234         value of progress element.
27235
27236 2012-10-31  Hayato Ito  <hayato@chromium.org>
27237
27238         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27239         https://bugs.webkit.org/show_bug.cgi?id=100832
27240
27241         Reviewed by Dimitri Glazkov.
27242
27243         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27244
27245         No new tests as no new functionality.
27246
27247         * dom/ComposedShadowTreeWalker.cpp:
27248         * html/shadow/InsertionPoint.h:
27249         (WebCore::shadowOfParentForDistribution):
27250         (WebCore):
27251         (WebCore::resolveReprojection):
27252
27253 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27254
27255         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27256         https://bugs.webkit.org/show_bug.cgi?id=99083
27257
27258         Reviewed by James Robinson.
27259
27260         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27261
27262         No new tests needed. This patch does not change anything functionally.
27263
27264         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27265         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27266         (WebCore::GraphicsLayerChromium::paint):
27267         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27268         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27269         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27270         (OpaqueRectTrackingContentLayerDelegate):
27271
27272 2012-10-31  Chris Evans  <cevans@google.com>
27273
27274         RenderArena has a memory leak and poor efficiency
27275         https://bugs.webkit.org/show_bug.cgi?id=100893
27276
27277         Reviewed by Eric Seidel.
27278
27279         1) Avoid memory leak that persists for the Document lifetime by
27280         increasing recycled size buckets up to 1024. It was previously 400,
27281         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27282         quota. An assert was added to prevent this happening again.
27283
27284         2) Fix the size of the recyled size bucket array on 64-bit. We only
27285         need 8 byte granularity on 64-bit, but we had 4.
27286
27287         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27288         that we're space efficient. We now take Arena metadata into account.
27289
27290         4) Double the default RenderArena size allocation to 8192 bytes. Even
27291         for a render of a trivial text file, 4096 bytes is not enough to prevent
27292         extra calls into the underlying malloc() for more arena pool.
27293
27294         * rendering/RenderArena.cpp:
27295         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27296         (WebCore::RenderArena::allocate):
27297         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27298         * rendering/RenderArena.h:
27299         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27300         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27301
27302 2012-10-31  Adam Barth  <abarth@webkit.org>
27303
27304         [V8] Garbage collection should use opaque roots rather than implicit references
27305         https://bugs.webkit.org/show_bug.cgi?id=100707
27306
27307         Reviewed by Kentaro Hara.
27308
27309         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27310         former used to inform V8 of implicit relationships between wrapper
27311         objects on a per-wrapper basis. That meant that we needed to know which
27312         DOMDataStore a given wrapper was in during garbage collection.
27313
27314         After this patch, we now use object groups rather than implicit
27315         references to inform V8 of these relationships. That has two benefits:
27316
27317         1) We no longer need to know which DOMDataStore a wrapper belongs
27318            because we don't need to find the exact source wrapper for the
27319            implicit connection.
27320
27321         2) We can now handle more complicated implicit relationships, for
27322            example when some of the intervening objects haven't had their
27323            JavaScript wrappers created yet.
27324
27325         This patch also unlocks to paths of future development:
27326         A) Fixing the remaining failures in fast/dom/gc-9.html
27327         B) Enumerating DOM wrappers entirely from V8 rather than from the
27328            DOMWrapperMaps (so that we can move more object towards using
27329            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27330
27331         * bindings/scripts/CodeGeneratorV8.pm:
27332         (NeedsCustomOpaqueRootForGC):
27333         (GenerateOpaqueRootForGC):
27334         (GenerateHeader):
27335         (GenerateImplementation):
27336         * bindings/v8/V8GCController.cpp:
27337         (ImplicitConnection):
27338         (WebCore::ImplicitConnection::ImplicitConnection):
27339         (WebCore::ImplicitConnection::root):
27340         (WebCore::ImplicitConnection::wrapper):
27341         (WebCore):
27342         (WebCore::operator<):
27343         (WrapperGrouper):
27344         (WebCore::WrapperGrouper::WrapperGrouper):
27345         (WebCore::WrapperGrouper::addToGroup):
27346         (WebCore::WrapperGrouper::keepAlive):
27347         (WebCore::WrapperGrouper::apply):
27348         (WebCore::ObjectVisitor::ObjectVisitor):
27349         (WebCore::ObjectVisitor::visitDOMWrapper):
27350         (ObjectVisitor):
27351         (WebCore::V8GCController::opaqueRootForGC):
27352         (WebCore::NodeVisitor::NodeVisitor):
27353         (WebCore::NodeVisitor::visitNodeWrapper):
27354         (NodeVisitor):
27355         (WebCore::V8GCController::majorGCPrologue):
27356         * bindings/v8/V8GCController.h:
27357         (WebCore):
27358         (V8GCController):
27359         * bindings/v8/WrapperTypeInfo.h:
27360         (WebCore):
27361         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27362         (WrapperTypeInfo):
27363         * bindings/v8/custom/V8NodeListCustom.cpp:
27364         (WebCore::V8NodeList::opaqueRootForGC):
27365         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27366         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27367
27368 2012-10-31  Stephen White  <senorblanco@chromium.org>
27369
27370         Unreviewed, rolling out r133107.
27371         http://trac.webkit.org/changeset/133107
27372         https://bugs.webkit.org/show_bug.cgi?id=100425
27373
27374         Broke compile on Chromium Win.
27375
27376         * Modules/indexeddb/IDBCallbacks.h:
27377         (IDBCallbacks):
27378         * Modules/indexeddb/IDBDatabase.cpp:
27379         (WebCore::IDBDatabase::objectStoreNames):
27380         (WebCore::IDBDatabase::createObjectStore):
27381         (WebCore::IDBDatabase::deleteObjectStore):
27382         (WebCore::IDBDatabase::transaction):
27383         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27384         (WebCore::IDBDatabaseBackendImpl::metadata):
27385         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27386         (WebCore::IDBDatabaseBackendImpl::objectStore):
27387         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27388         (WebCore::IDBDatabaseBackendImpl::transaction):
27389         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27390         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27391         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27392         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27393         (IDBDatabaseBackendImpl):
27394         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27395         (IDBDatabaseBackendInterface):
27396         * Modules/indexeddb/IDBFactory.cpp:
27397         * Modules/indexeddb/IDBFactory.h:
27398         * Modules/indexeddb/IDBIndex.h:
27399         (WebCore::IDBIndex::openKeyCursor):
27400         * Modules/indexeddb/IDBIndexBackendInterface.h:
27401         * Modules/indexeddb/IDBKeyPath.cpp:
27402         * Modules/indexeddb/IDBMetadata.h:
27403         (WebCore):
27404         (IDBDatabaseMetadata):
27405         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27406         (IDBObjectStoreMetadata):
27407         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27408         (IDBIndexMetadata):
27409         * Modules/indexeddb/IDBObjectStore.cpp:
27410         (WebCore::IDBObjectStore::indexNames):
27411         (WebCore::IDBObjectStore::put):
27412         (WebCore::IDBObjectStore::createIndex):
27413         (WebCore::IDBObjectStore::index):
27414         (WebCore::IDBObjectStore::deleteIndex):
27415         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27416         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27417         (WebCore):
27418         (WebCore::makeIndexWriters):
27419         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27420         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27421         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27422         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27423         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27424         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27425         (WebCore::IDBObjectStoreBackendImpl::index):
27426         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27427         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27428         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27429         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27430         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27431         (IDBObjectStoreBackendImpl):
27432         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27433         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27434         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27435         * Modules/indexeddb/IDBRequest.cpp:
27436         (WebCore::IDBRequest::onSuccess):
27437         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27438         * Modules/indexeddb/IDBTransaction.cpp:
27439         (WebCore::IDBTransaction::create):
27440         (WebCore::IDBTransaction::IDBTransaction):
27441         (WebCore::IDBTransaction::objectStore):
27442         * Modules/indexeddb/IDBTransaction.h:
27443         (IDBTransaction):
27444         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27445         (WebCore::IDBTransactionBackendImpl::create):
27446         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27447         (WebCore::IDBTransactionBackendImpl::objectStore):
27448         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27449         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27450         (IDBTransactionBackendImpl):
27451         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27452         * Modules/indexeddb/IDBTransactionCoordinator.h:
27453
27454 2012-10-31  Alec Flett  <alecflett@chromium.org>
27455
27456         IndexedDB: add methods to support id-based backend APIs
27457         https://bugs.webkit.org/show_bug.cgi?id=100425
27458
27459         Reviewed by Tony Chang.
27460
27461         First half of refactor involves adding a number of methods that
27462         are int64_t-based rather than String-based. As a part of this, the
27463         IDB*Metadata structs and the backend objectStore/index maps all
27464         use int64_t as keys, rather than String.
27465
27466         In addition, there were a number of cleanups that came out of the
27467         refactor:
27468
27469         - The list of object stores active in a transaction is now
27470           maintained by the frontend IDBTransaction rather than the backend
27471           IDBTransactionBackendImpl. This also had a simplifying rippling
27472           effect through other call signatures.
27473
27474         - I was able to remove an apparently old FIXME from
27475           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27476
27477         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27478           simpler since the id is now easily available in the
27479           IDBIndexMetadata.
27480
27481         - A number of methods got simpler in their int64_t versions,
27482           specifically dropping a number of ExceptionCodes.
27483
27484         There is also some glue code
27485         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27486         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27487
27488         No new tests, no new functionality as this is just a refactor.
27489
27490         * Modules/indexeddb/IDBDatabase.cpp:
27491         (WebCore::IDBDatabase::objectStoreNames):
27492         (WebCore::IDBDatabase::createObjectStore):
27493         (WebCore::IDBDatabase::deleteObjectStore):
27494         (WebCore::IDBDatabase::transaction):
27495         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27496         (WebCore::IDBDatabaseBackendImpl::metadata):
27497         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27498         (WebCore::IDBDatabaseBackendImpl::objectStore):
27499         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27500         (WebCore):
27501         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27502         (WebCore::IDBDatabaseBackendImpl::transaction):
27503         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27504         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27505         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27506         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27507         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27508         (IDBDatabaseBackendImpl):
27509         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27510         (IDBDatabaseBackendInterface):
27511         * Modules/indexeddb/IDBIndex.h:
27512         (WebCore::IDBIndex::id):
27513         (WebCore::IDBIndex::openKeyCursor):
27514         * Modules/indexeddb/IDBIndexBackendInterface.h:
27515         * Modules/indexeddb/IDBMetadata.h:
27516         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27517         (IDBIndexMetadata):
27518         (IDBObjectStoreMetadata):
27519         (WebCore::IDBObjectStoreMetadata::containsIndex):
27520         (IDBDatabaseMetadata):
27521         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27522         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27523         * Modules/indexeddb/IDBObjectStore.cpp:
27524         (WebCore::IDBObjectStore::indexNames):
27525         (WebCore::IDBObjectStore::put):
27526         (WebCore::IDBObjectStore::createIndex):
27527         (WebCore::IDBObjectStore::index):
27528         (WebCore::IDBObjectStore::deleteIndex):
27529         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27530         (WebCore::IDBObjectStoreBackendImpl::put):
27531         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27532         (WebCore):
27533         (WebCore::makeIndexWriters):
27534         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27535         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27536         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27537         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27538         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27539         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27540         (WebCore::IDBObjectStoreBackendImpl::index):
27541         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27542         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27543         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27544         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27545         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27546         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27547         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27548         (IDBObjectStoreBackendImpl):
27549         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27550         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27551         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27552         * Modules/indexeddb/IDBRequest.cpp:
27553         (WebCore::IDBRequest::onSuccess):
27554         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27555         * Modules/indexeddb/IDBTransaction.cpp:
27556         (WebCore::IDBTransaction::create):
27557         (WebCore::IDBTransaction::IDBTransaction):
27558         (WebCore::IDBTransaction::objectStore):
27559         * Modules/indexeddb/IDBTransaction.h:
27560         (IDBTransaction):
27561         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27562         (WebCore::IDBTransactionBackendImpl::create):
27563         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27564         (WebCore::IDBTransactionBackendImpl::objectStore):
27565         (WebCore):
27566         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27567         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27568         (IDBTransactionBackendImpl):
27569         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27570
27571 2012-10-30  Mark Lam  <mark.lam@apple.com>
27572
27573         A JSC printf (support for %J+s and %b).
27574         https://bugs.webkit.org/show_bug.cgi?id=100566.
27575
27576         Reviewed by Michael Saboff.
27577
27578         Added forwarding header for VMInspector.h.
27579
27580         No new tests needed for this.
27581
27582         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27583
27584 2012-10-31  Chris Rogers  <crogers@google.com>
27585
27586         Implement optional arguments in AudioBufferSourceNode start() method
27587         https://bugs.webkit.org/show_bug.cgi?id=100894
27588
27589         Reviewed by Kenneth Russell.
27590
27591         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27592         offset and duration.  Currently, only 1 and 3 arguments are supported.
27593
27594         Test: webaudio/audiobuffersource-start.html
27595
27596         * Modules/webaudio/AudioBufferSourceNode.cpp:
27597         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27598         (WebCore::AudioBufferSourceNode::startGrain):
27599         (WebCore):
27600         * Modules/webaudio/AudioBufferSourceNode.h:
27601         (AudioBufferSourceNode):
27602         * Modules/webaudio/AudioBufferSourceNode.idl:
27603
27604 2012-10-31  Mike West  <mkwst@chromium.org>
27605
27606         Implement the canonical "Content-Security-Policy" header.
27607         https://bugs.webkit.org/show_bug.cgi?id=96765
27608
27609         Reviewed by Adam Barth.
27610
27611         The CSP 1.0 specification defines the "Content-Security-Policy" header
27612         as the canonical mechanism of defining a resource's security policy. Up
27613         through this patch, we've implemented the functionality behind a prefix
27614         in order to ensure compatibility with the standard once it's released as
27615         a recommendation. Both the specification and WebKit's implementation are
27616         far enough along in that process that it makes sense to support the
27617         unprefixed header for sites that wish to opt-in to CSP 1.0.
27618
27619         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27620         features behind the prefixed header ('X-WebKit-CSP') until that standard
27621         is far enough along to justify moving them out to the canonical header.
27622
27623         This patch defines the 'Content-Security-Policy' header for all ports,
27624         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27625         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27626         same behavior with both headers. Ports that have opted-in will see much
27627         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27628         the canonical header.
27629
27630         The functionality in this change is covered by the changes made to
27631         existing tests. No expectations changed, only the headers that are sent.
27632
27633         * dom/Document.cpp:
27634         (WebCore::Document::processHttpEquiv):
27635             Add canonical header support to 'meta' element definitions.
27636         * loader/FrameLoader.cpp:
27637         (WebCore::FrameLoader::didBeginDocument):
27638             Add canonical header support to FrameLoader.
27639         * page/ContentSecurityPolicy.cpp:
27640         (WebCore::CSPDirectiveList::headerType):
27641             The ContentSecurityPolicy::HeaderType enum now has four values:
27642             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27643             unprefixed/enforce. Instead of creating logic to output the proper
27644             type based on internal flags, CSPDirectiveList now saves the value
27645             provided at creation time, and returns it via this method.
27646         (CSPDirectiveList):
27647         (WebCore::CSPDirectiveList::CSPDirectiveList):
27648             The constructor now accepts a type, which is stored on the object.
27649             It also stores a new internal variable, 'm_experimental', which
27650             defines whether or not experimental features ought to be available.
27651             These features are still locked behind the CSP_NEXT flag, but that
27652             might not be the case forever.
27653         (WebCore::CSPDirectiveList::create):
27654             The static constructor wrapper now passes the type into the real
27655             constructor, which also now handles setting its internal variables.
27656         (WebCore::CSPDirectiveList::parse):
27657             'parse()' is given the header, so it makes sense to store it here as
27658             well, rather than in the create wrapper.
27659         (WebCore::CSPDirectiveList::addDirective):
27660             1.1 directives remain locked behind CSP_NEXT, but now also require
27661             that 'm_experimental' is set, signaling usage of the prefixed header
27662             and an implicit opt-in to 1.1.
27663         * page/ContentSecurityPolicy.h:
27664             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27665             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27666             'X-WebKit-CSP', respectively.
27667
27668 2012-10-31  Roger Fong  <roger_fong@apple.com>
27669
27670         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27671         https://bugs.webkit.org/show_bug.cgi?id=100317
27672
27673         Reviewed by Sam Weinig.
27674
27675         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27676         where ownership is determined by how much of the hwnd is on which screen.
27677         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27678         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27679         However, since the drop down button is something that WebKit renders there is no hwnd.
27680
27681         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27682         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27683         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27684         between the temporary and final positionings.
27685
27686         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27687
27688         * platform/win/PopupMenuWin.cpp:
27689         (WebCore::monitorFromHwnd):
27690         (WebCore):
27691         (WebCore::PopupMenuWin::show):
27692         (WebCore::PopupMenuWin::calculatePositionAndSize):
27693
27694 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27695
27696         Added viewport at-rule to the CSS parser and tokenizer
27697         https://bugs.webkit.org/show_bug.cgi?id=95961
27698
27699         Reviewed by Kenneth Rohde Christiansen.
27700
27701         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27702         the newly parsed rule to the rule list.
27703
27704         This parser now implements the following part of the CSS Device Adaptation
27705         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27706
27707         Test: css3/device-adapt/viewport-at-rule-parsing.html
27708
27709         * CMakeLists.txt:
27710         * GNUmakefile.list.am:
27711         * Target.pri:
27712         * WebCore.gypi:
27713         * WebCore.vcproj/WebCore.vcproj:
27714         * WebCore.xcodeproj/project.pbxproj:
27715         * css/CSSGrammar.y.in:
27716         * css/CSSParser.cpp:
27717         (WebCore::CSSParser::CSSParser):
27718         (WebCore::CSSParser::detectAtToken):
27719         (WebCore):
27720         (WebCore::CSSParser::createViewportRule):
27721         * css/CSSParser.h:
27722         (CSSParser):
27723         (WebCore::CSSParser::markViewportRuleBodyStart):
27724         (WebCore::CSSParser::markViewportRuleBodyEnd):
27725         (WebCore::CSSParser::inViewport):
27726
27727             These methods are needed by the next patch validating the properties.
27728             Some viewport properties are common to other rules but have different
27729             semantics, and accepts different keywords. The validation needs to be
27730             done in a different code path.
27731
27732         * css/CSSPropertySourceData.h:
27733         * css/CSSRule.cpp:
27734         (WebCore):
27735         (WebCore::CSSRule::cssText):
27736         (WebCore::CSSRule::destroy):
27737         (WebCore::CSSRule::reattach):
27738         (WebCore::CSSRule::reportMemoryUsage):
27739         * css/CSSRule.h:
27740         (CSSRule):
27741         (WebCore::CSSRule::isViewportRule):
27742         * css/StyleRule.cpp:
27743         (WebCore::StyleRuleBase::reportMemoryUsage):
27744         (WebCore::StyleRuleBase::destroy):
27745         (WebCore::StyleRuleBase::copy):
27746         (WebCore::StyleRuleBase::createCSSOMWrapper):
27747         (WebCore):
27748         (WebCore::StyleRuleViewport::StyleRuleViewport):
27749         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27750         (WebCore::StyleRuleViewport::mutableProperties):
27751         (WebCore::StyleRuleViewport::setProperties):
27752         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27753         * css/StyleRule.h:
27754         (StyleRuleBase):
27755         (WebCore::StyleRuleBase::isViewportRule):
27756         (WebCore):
27757         (StyleRuleViewport):
27758         (WebCore::StyleRuleViewport::create):
27759         (WebCore::StyleRuleViewport::properties):
27760         (WebCore::StyleRuleViewport::copy):
27761         * css/WebKitCSSViewportRule.cpp: Added.
27762         (WebCore):
27763         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27764         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27765         (WebCore::WebKitCSSViewportRule::style):
27766         (WebCore::WebKitCSSViewportRule::cssText):
27767         (WebCore::WebKitCSSViewportRule::reattach):
27768         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27769         * css/WebKitCSSViewportRule.h: Added.
27770         (WebCore):
27771
27772 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27773
27774         [CSS Shaders] Validate types of built-in uniforms
27775         https://bugs.webkit.org/show_bug.cgi?id=98974
27776
27777         Reviewed by Dean Jackson.
27778
27779         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27780         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27781         vec2, not a float.
27782
27783         Relevant Spec Section:
27784         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27785
27786         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27787
27788         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27789         (WebCore):
27790         (WebCore::builtInUniformNameToTypeMap):
27791         (WebCore::validateSymbols):
27792
27793 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27794
27795         Unreviewed, rolling out r133044.
27796         http://trac.webkit.org/changeset/133044
27797         https://bugs.webkit.org/show_bug.cgi?id=100888
27798
27799         Hits an ASSERT in the isolatedWorlds tests (Requested by
27800         abarth on #webkit).
27801
27802         * bindings/scripts/CodeGeneratorV8.pm:
27803         (NeedsToVisitDOMWrapper):
27804         (GenerateVisitDOMWrapper):
27805         (GenerateHeader):
27806         (GenerateImplementation):
27807         * bindings/v8/V8GCController.cpp:
27808         (WebCore::ObjectVisitor::ObjectVisitor):
27809         (WebCore::ObjectVisitor::visitDOMWrapper):
27810         (ObjectVisitor):
27811         (WebCore::rootForGC):
27812         (ImplicitConnection):
27813         (WebCore::ImplicitConnection::ImplicitConnection):
27814         (WebCore::ImplicitConnection::root):
27815         (WebCore::ImplicitConnection::wrapper):
27816         (WebCore):
27817         (WebCore::operator<):
27818         (WebCore::NodeVisitor::NodeVisitor):
27819         (WebCore::NodeVisitor::visitNodeWrapper):
27820         (NodeVisitor):
27821         (WebCore::NodeVisitor::applyGrouping):
27822         (WebCore::V8GCController::majorGCPrologue):
27823         * bindings/v8/V8GCController.h:
27824         (V8GCController):
27825         * bindings/v8/WrapperTypeInfo.h:
27826         (WebCore):
27827         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27828         (WrapperTypeInfo):
27829         * bindings/v8/custom/V8NodeListCustom.cpp:
27830         (WebCore::V8NodeList::visitDOMWrapper):
27831         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27832         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27833
27834 2012-10-31  Philip Rogers  <pdr@google.com>
27835
27836         Cache animationMode() in SVG animations.
27837         https://bugs.webkit.org/show_bug.cgi?id=99694
27838
27839         Reviewed by Eric Seidel.
27840
27841         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27842         animation benchmark! This is the 3rd patch for WK99694.
27843
27844         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27845         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27846         animation element that can depend on other elements in the page. For example:
27847         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27848         <rect x="0" y="0" width="100" height="100" fill="green">
27849             <animateMotion dur="6s" repeatCount="indefinite">
27850                 <mpath xlink:href="#mypath"/>
27851             </animateMotion>
27852         </rect>
27853         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27854
27855         animationMode depends on several properties of an animation element: the set tag, whether
27856         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27857         a hot function for two reasons:
27858         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27859            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27860            "values" attribute changes.
27861         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27862            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27863            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27864            this path lookup on every animation loop in case something changed. After this patch we
27865            only update AnimateMotion's path when it changes.
27866
27867         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27868         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27869         to track when target <path>s change, instead of looking this up every time.
27870
27871         This refactoring is covered by existing tests.
27872         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27873         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27874
27875         * svg/SVGAnimateMotionElement.cpp:
27876         (WebCore::SVGAnimateMotionElement::parseAttribute):
27877         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27878
27879             animationPath() has been changed to updateAnimationPath() and should only be called
27880             when the animation path (path attribute, or mpath's referenced path) has changed.
27881
27882         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27883         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27884
27885             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27886             updateAnimationMode() codepath.
27887
27888         (WebCore):
27889         * svg/SVGAnimateMotionElement.h:
27890         (SVGAnimateMotionElement):
27891         * svg/SVGAnimationElement.cpp:
27892         (WebCore::SVGAnimationElement::SVGAnimationElement):
27893         (WebCore::SVGAnimationElement::isSupportedAttribute):
27894         (WebCore::SVGAnimationElement::parseAttribute):
27895
27896             The from, by, and to attributes have been added so that we can track when they change
27897             and update the animation mode. Similarly for when the values attribute changes.
27898
27899         (WebCore::SVGAnimationElement::updateAnimationMode):
27900         * svg/SVGAnimationElement.h:
27901         (WebCore::SVGAnimationElement::animationMode):
27902         (SVGAnimationElement):
27903         (WebCore::SVGAnimationElement::setAnimationMode):
27904         (WebCore::SVGAnimationElement::calculateDistance):
27905         * svg/SVGMPathElement.cpp:
27906         (WebCore::SVGMPathElement::buildPendingResource):
27907
27908             It would be nice to move all the duplicated buildPendingResource() logic into a central
27909             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27910             SVGFEImageElement::buildPendingResource.
27911
27912         (WebCore):
27913         (WebCore::SVGMPathElement::clearResourceReferences):
27914         (WebCore::SVGMPathElement::insertedInto):
27915         (WebCore::SVGMPathElement::removedFrom):
27916         (WebCore::SVGMPathElement::svgAttributeChanged):
27917         (WebCore::SVGMPathElement::targetPathChanged):
27918         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27919         * svg/SVGMPathElement.h:
27920         (SVGMPathElement):
27921         * svg/SVGPathElement.cpp:
27922
27923             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27924             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27925             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27926             changes so invalidateMPathDependencies() has been added.
27927
27928         (WebCore::SVGPathElement::svgAttributeChanged):
27929         (WebCore::SVGPathElement::invalidateMPathDependencies):
27930         (WebCore):
27931         (WebCore::SVGPathElement::insertedInto):
27932         (WebCore::SVGPathElement::removedFrom):
27933         * svg/SVGPathElement.h:
27934         (SVGPathElement):
27935         * svg/SVGSetElement.cpp:
27936         (WebCore::SVGSetElement::SVGSetElement):
27937         (WebCore::SVGSetElement::updateAnimationMode):
27938         (WebCore):
27939         * svg/SVGSetElement.h:
27940         (SVGSetElement):
27941         * svg/animation/SVGSMILElement.cpp:
27942         (WebCore::SVGSMILElement::isSupportedAttribute):
27943
27944 2012-10-31  Beth Dakin  <bdakin@apple.com>
27945
27946         https://bugs.webkit.org/show_bug.cgi?id=100879
27947         ScrollingStateNode::cloneAndResetNode() should not be virtual
27948
27949         Reviewed by Simon Fraser.
27950
27951         cloneAndResetNode() is currently pure virtual and implemented only 
27952         in ScrollingStateScrollingNode. However, all of the work that it 
27953         does at this time is stuff that a generic ScrollingStateNode could 
27954         do. We should move this implementation to the base class so that it 
27955         does not need to be duplicated for future node types.
27956
27957         This patch also re-names cloneAndResetNode() to cloneAndReset()
27958         and correspondingly re-names cloneAndResetChildNodes() to 
27959         cloneAndResetChildren(). 
27960
27961         Finally the patch also changes the copy constructors of both of these 
27962         classes to take a const reference instead of a pointer.
27963
27964         * page/scrolling/ScrollingStateNode.cpp:
27965         (WebCore::ScrollingStateNode::ScrollingStateNode):
27966         (WebCore::ScrollingStateNode::cloneAndReset):
27967         (WebCore):
27968         (WebCore::ScrollingStateNode::cloneAndResetChildren):
27969         * page/scrolling/ScrollingStateNode.h:
27970         (ScrollingStateNode):
27971         * page/scrolling/ScrollingStateScrollingNode.cpp:
27972         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
27973         (WebCore):
27974         * page/scrolling/ScrollingStateScrollingNode.h:
27975         (ScrollingStateScrollingNode):
27976         * page/scrolling/ScrollingStateTree.cpp:
27977         (WebCore::ScrollingStateTree::commit):
27978
27979 2012-10-31  Tom Sepez  <tsepez@chromium.org>
27980         
27981         Malformed X-XSS-Protection headers not reported.
27982         https://bugs.webkit.org/show_bug.cgi?id=100538
27983
27984         Reviewed by Adam Barth.
27985
27986         Re-writes X-XSS-Protection header parser to be more particular, and to
27987         return better information on error.
27988
27989         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
27990                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
27991                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
27992                http/tests/security/xssAuditor/xss-protection-parsing-02.html
27993
27994         * html/parser/XSSAuditor.cpp:
27995         (WebCore::XSSAuditor::init):
27996         Detect error return code and log console message with details
27997         * platform/network/HTTPParsers.cpp:
27998         (WebCore):
27999         (WebCore::skipWhiteSpace):
28000         Use safe less-than comparsion in case called with pos already out of range.
28001         (WebCore::skipToken):
28002         Fix comparison to properly reject substrings at end of input.  Prevent advancing
28003         returned position when match fails, so that this may someday be used to match
28004         optional tokens.
28005         (WebCore::parseXSSProtectionHeader):
28006         Return detailled error status. Avoid needless string copy.
28007         * platform/network/HTTPParsers.h:
28008         Add new error returns for x-xss-protection header parser.
28009         
28010 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
28011
28012         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
28013         https://bugs.webkit.org/show_bug.cgi?id=100808
28014         <rdar://problem/12562541>
28015
28016         Reviewed by Dean Jackson.
28017
28018         When projecting rects down into transformed layers, the projection can fail with severe
28019         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
28020         In this case we already clamp, but the fact that we clamped doesn't make it out to
28021         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
28022         computed.
28023         
28024         Fix by propagating the fact that clamping occurred out of the TransformState functions
28025         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
28026         to be visible if clamping occurred.
28027
28028         Tests: compositing/tiling/rotated-tiled-clamped.html
28029                compositing/tiling/rotated-tiled-preserve3d-clamped.html
28030
28031         * platform/graphics/ca/GraphicsLayerCA.cpp:
28032         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
28033         or the state.mappedQuad() clamped, use our bounds as the visible rect.
28034         * platform/graphics/transforms/TransformState.cpp:
28035         (WebCore::TransformState::applyTransform): Pass out clamping state.
28036         (WebCore::TransformState::flatten): Ditto.
28037         (WebCore::TransformState::mappedPoint): Ditto.
28038         (WebCore::TransformState::mappedQuad): Ditto.
28039         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
28040         wasClamped, since this function is internal.
28041         * platform/graphics/transforms/TransformState.h:
28042         (TransformState):
28043         * platform/graphics/transforms/TransformationMatrix.cpp:
28044         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
28045         set the flag to say we clamped.
28046         * platform/graphics/transforms/TransformationMatrix.h:
28047         (TransformationMatrix):
28048
28049 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
28050
28051         Change bubble message style to BB10 UX spec.
28052         https://bugs.webkit.org/show_bug.cgi?id=100862
28053
28054         Reviewed by Rob Buis.
28055
28056         RIM PR 198108
28057         Internal Reviewed by Otto Cheung.
28058         No new tests.
28059
28060         * css/themeBlackBerry.css:
28061         (::-webkit-validation-bubble-message): Added.
28062         (::-webkit-validation-bubble-arrow): Added.
28063         (::-webkit-validation-bubble-heading): Added.
28064
28065 2012-10-31  Mike West  <mkwst@chromium.org>
28066
28067         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
28068         https://bugs.webkit.org/show_bug.cgi?id=100850
28069
28070         Reviewed by Adam Barth.
28071
28072         For historical reasons, a few places in WebCore talk to Console directly
28073         via 'document()->domWindow()->console()->addMessage(...)'. This is more
28074         safely wrapped by calling 'addConsoleMessage' on the Document itself.
28075
28076         No visible functionality should change; we'll simply avoid potential
28077         null dereferences in the future.
28078
28079         * html/HTMLFormElement.cpp:
28080         (WebCore::HTMLFormElement::validateInteractively):
28081         * html/canvas/WebGLRenderingContext.cpp:
28082         (WebCore):
28083         (WebCore::WebGLRenderingContext::printWarningToConsole):
28084         * loader/FrameLoader.cpp:
28085         (WebCore::FrameLoader::reportLocalLoadFailed):
28086         * loader/MixedContentChecker.cpp:
28087         (WebCore::MixedContentChecker::logWarning):
28088         * loader/appcache/ApplicationCacheGroup.cpp:
28089         (WebCore::ApplicationCacheGroup::abort):
28090         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28091         (WebCore::ApplicationCacheGroup::didFinishLoading):
28092         (WebCore::ApplicationCacheGroup::didFail):
28093         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28094         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28095         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28096         * loader/cache/CachedResourceLoader.cpp:
28097         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
28098
28099 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28100
28101         Web Inspector: frame chooser does not work on subsequent inspector open.
28102         https://bugs.webkit.org/show_bug.cgi?id=100771
28103
28104         Reviewed by Yury Semikhatsky.
28105
28106         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28107         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28108         - Remove remains of the front-end reused signal from InspectorAgent
28109         - Send execution contexts post clear window object instead of post commit load.
28110
28111         * inspector/InspectorAgent.cpp:
28112         (WebCore::InspectorAgent::InspectorAgent):
28113         (WebCore::InspectorAgent::clearFrontend):
28114         (WebCore::InspectorAgent::didCommitLoad):
28115         * inspector/InspectorAgent.h:
28116         (InspectorAgent):
28117         * inspector/InspectorInstrumentation.cpp:
28118         (WebCore):
28119         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28120         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28121         * inspector/InspectorInstrumentation.h:
28122         (InspectorInstrumentation):
28123         * inspector/InspectorPageAgent.cpp:
28124         (WebCore::InspectorPageAgent::restore):
28125         * inspector/InspectorRuntimeAgent.cpp:
28126         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28127         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28128         (WebCore::InspectorRuntimeAgent::run):
28129         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28130         * inspector/InspectorRuntimeAgent.h:
28131         (InspectorRuntimeAgent):
28132         * inspector/InstrumentingAgents.h:
28133         (WebCore):
28134         (WebCore::InstrumentingAgents::InstrumentingAgents):
28135         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28136         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28137         (InstrumentingAgents):
28138         * inspector/PageRuntimeAgent.cpp:
28139         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28140         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28141         (WebCore::PageRuntimeAgent::setFrontend):
28142         (WebCore::PageRuntimeAgent::clearFrontend):
28143         (WebCore::PageRuntimeAgent::enable):
28144         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28145         * inspector/PageRuntimeAgent.h:
28146         (PageRuntimeAgent):
28147         * inspector/WorkerRuntimeAgent.cpp:
28148         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28149         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28150         (WebCore::WorkerRuntimeAgent::run):
28151         (WebCore):
28152         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28153         * inspector/WorkerRuntimeAgent.h:
28154         (WorkerRuntimeAgent):
28155
28156 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28157
28158         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28159         https://bugs.webkit.org/show_bug.cgi?id=100845.
28160
28161         Reviewed by Noam Rosenthal.
28162
28163         WebGL displays the Canvas with (0,0) being the bottom left corner.
28164         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28165         flag before painting to TextureMapper.
28166         It results in backing store contents being drawn upside down on screen.
28167         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28168         it's backing store contents into a TextureMapper.
28169
28170         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28171         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28172
28173 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28174
28175         [Texmap] Enable filter animations in GraphicsLayerAnimation
28176         https://bugs.webkit.org/show_bug.cgi?id=100318
28177
28178         Reviewed by Kenneth Rohde Christiansen.
28179
28180         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28181         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28182
28183         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28184
28185         * platform/graphics/GraphicsLayerAnimation.cpp:
28186         (WebCore):
28187         (WebCore::blendFunc):
28188         (WebCore::applyFilterAnimation):
28189         (WebCore::GraphicsLayerAnimation::applyInternal):
28190         * platform/graphics/GraphicsLayerAnimation.h:
28191         (Client):
28192         * platform/graphics/texmap/TextureMapperLayer.cpp:
28193         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28194         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28195         (WebCore::TextureMapperLayer::paintRecursive):
28196         (WebCore::TextureMapperLayer::syncAnimations):
28197         * platform/graphics/texmap/TextureMapperLayer.h:
28198         (TextureMapperLayer):
28199         (WebCore::TextureMapperLayer::setFilters):
28200         (WebCore::TextureMapperLayer::setAnimatedFilters):
28201
28202 2012-10-31  Adam Barth  <abarth@webkit.org>
28203
28204         [V8] Garbage collection should use opaque roots rather than implicit references
28205         https://bugs.webkit.org/show_bug.cgi?id=100707
28206
28207         Reviewed by Kentaro Hara.
28208
28209         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28210         former used to inform V8 of implicit relationships between wrapper
28211         objects on a per-wrapper basis. That meant that we needed to know which
28212         DOMDataStore a given wrapper was in during garbage collection.
28213
28214         After this patch, we now use object groups rather than implicit
28215         references to inform V8 of these relationships. That has two benefits:
28216
28217         1) We no longer need to know which DOMDataStore a wrapper belongs
28218            because we don't need to find the exact source wrapper for the
28219            implicit connection.
28220
28221         2) We can now handle more complicated implicit relationships, for
28222            example when some of the intervening objects haven't had their
28223            JavaScript wrappers created yet.
28224
28225         This patch also unlocks to paths of future development:
28226         A) Fixing the remaining failures in fast/dom/gc-9.html
28227         B) Enumerating DOM wrappers entirely from V8 rather than from the
28228            DOMWrapperMaps (so that we can move more object towards using
28229            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28230
28231         * bindings/scripts/CodeGeneratorV8.pm:
28232         (NeedsCustomOpaqueRootForGC):
28233         (GenerateOpaqueRootForGC):
28234         (GenerateHeader):
28235         (GenerateImplementation):
28236         * bindings/v8/V8GCController.cpp:
28237         (ImplicitConnection):
28238         (WebCore::ImplicitConnection::ImplicitConnection):
28239         (WebCore::ImplicitConnection::root):
28240         (WebCore::ImplicitConnection::wrapper):
28241         (WebCore):
28242         (WebCore::operator<):
28243         (WrapperGrouper):
28244         (WebCore::WrapperGrouper::WrapperGrouper):
28245         (WebCore::WrapperGrouper::addToGroup):
28246         (WebCore::WrapperGrouper::keepAlive):
28247         (WebCore::WrapperGrouper::apply):
28248         (WebCore::ObjectVisitor::ObjectVisitor):
28249         (WebCore::ObjectVisitor::visitDOMWrapper):
28250         (ObjectVisitor):
28251         (WebCore::V8GCController::opaqueRootForGC):
28252         (WebCore::NodeVisitor::NodeVisitor):
28253         (WebCore::NodeVisitor::visitNodeWrapper):
28254         (NodeVisitor):
28255         (WebCore::V8GCController::majorGCPrologue):
28256         * bindings/v8/V8GCController.h:
28257         (WebCore):
28258         (V8GCController):
28259         * bindings/v8/WrapperTypeInfo.h:
28260         (WebCore):
28261         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28262         (WrapperTypeInfo):
28263         * bindings/v8/custom/V8NodeListCustom.cpp:
28264         (WebCore::V8NodeList::opaqueRootForGC):
28265         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28266         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28267
28268 2012-10-31  Alexei Filippov  <alph@chromium.org>
28269
28270         Web Inspector: Add total node to native memory snapshot tree
28271         https://bugs.webkit.org/show_bug.cgi?id=100843
28272
28273         Reviewed by Yury Semikhatsky.
28274
28275         * inspector/front-end/NativeMemorySnapshotView.js:
28276         (WebInspector.NativeSnapshotDataGrid):
28277         (WebInspector.NativeSnapshotNode):
28278         (WebInspector.MemoryBlockViewProperties._initialize):
28279
28280 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28281
28282         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28283         https://bugs.webkit.org/show_bug.cgi?id=11645
28284
28285         Reviewed by Julien Chaffraix.
28286
28287         When the inner (or nested) table has auto width and column(s) with
28288         percent width, we should scale our column(s) to the width of the
28289         containing table (unless it has auto width).
28290
28291         Test: fast/table/scale-nested-percent-width-cols.html
28292
28293         * rendering/AutoTableLayout.cpp:
28294         (WebCore::shouldScaleColumns):
28295         If the containing table width was of percent type, we were disallowing
28296         our inner or nested table's column from scaling to the size of the parent
28297         table. We should prohibit the scaling of the nested table columns only
28298         if the parent table has auto width.
28299
28300 2012-10-31  Ian Vollick  <vollick@chromium.org>
28301
28302         Add support for text-based repaint testing
28303         https://bugs.webkit.org/show_bug.cgi?id=100584
28304
28305         Reviewed by Simon Fraser.
28306
28307         Allows tracked repaint rects to be dumped as text.
28308
28309         The following layout tests have been converted:
28310           fast/repaint/layer-full-repaint.html
28311           fast/repaint/overflow-flipped-writing-mode-table.html
28312
28313         * WebCore.exp.in:
28314           Exports for:
28315             FrameView::setTracksRepaints(bool)
28316             Frame::trackedRepaintRectsAsText() const
28317         * page/Frame.cpp:
28318         (WebCore::Frame::trackedRepaintRectsAsText):
28319           Returns a string containing information on all tracked repaint rects.
28320         * page/FrameView.cpp:
28321         (WebCore::FrameView::setTracksRepaints):
28322           Rather than calling m_trackedRepaintRects.clear() directly, I've
28323           called resetTrackedRepaints(). This will allow us to do more
28324           sophisticated resetting when we start tracking repaint rects for
28325           composited layers.
28326         (WebCore::FrameView::trackedRepaintRectsAsText):
28327           Provides the string returned by Frame::trackedRepaintRectsAsText.
28328         * testing/Internals.cpp:
28329         (WebCore::Internals::repaintRectsAsText):
28330           Returns Frame::trackedRepaintRectsAsText.
28331         (WebCore):
28332         (WebCore::Internals::startTrackingRepaints):
28333           Calls FrameView::setTracksRepaints(true)
28334         (WebCore::Internals::stopTrackingRepaints):
28335           Calls FrameView::setTracksRepaints(false)
28336         * testing/Internals.h:
28337         * testing/Internals.idl:
28338           Declarations for:
28339             repaintRectsAsText
28340             startTrackingRepaints
28341             stopTrackingRepaints
28342
28343 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28344
28345         Web Inspector: page crash when pausing in dedicated worker
28346         https://bugs.webkit.org/show_bug.cgi?id=100837
28347
28348         Reviewed by Pavel Feldman.
28349
28350         Pass debugger agent to InjectedScriptHost::init in case of workers.
28351
28352         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28353
28354         * inspector/WorkerInspectorController.cpp:
28355         (WebCore::WorkerInspectorController::WorkerInspectorController):
28356
28357 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28358
28359         perspective-origin should ignore values with more then two lengths and use the default values
28360         https://bugs.webkit.org/show_bug.cgi?id=100835
28361
28362         Reviewed by Kenneth Rohde Christiansen.
28363
28364         Perspective-origin should ignore values with more then two lengths
28365         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28366         the default values instead of parsing it as an unlimited-length list,
28367         of which all but the first two values are ignored. This makes perspective-origin 
28368         behave similar to transform-origin which uses default value in this case,
28369         as well as firefox does the same.
28370
28371         Test: transforms/2d/computed-style-origin.html
28372
28373         * css/CSSParser.cpp:
28374         (WebCore::CSSParser::parsePerspectiveOrigin):
28375
28376 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28377
28378         Unreviewed, rolling out r133016.
28379         http://trac.webkit.org/changeset/133016
28380         https://bugs.webkit.org/show_bug.cgi?id=100856
28381
28382         broke compile-webkit on several bots (Requested by podivilov
28383         on #webkit).
28384
28385         * CMakeLists.txt:
28386         * GNUmakefile.list.am:
28387         * Target.pri:
28388         * WebCore.gypi:
28389         * WebCore.vcproj/WebCore.vcproj:
28390         * WebCore.xcodeproj/project.pbxproj:
28391         * dom/DeviceOrientationClient.h:
28392         (DeviceOrientationClient):
28393         * dom/DeviceOrientationController.cpp:
28394         (WebCore::DeviceOrientationController::DeviceOrientationController):
28395         (WebCore):
28396         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28397         (WebCore::DeviceOrientationController::timerFired):
28398         (WebCore::DeviceOrientationController::addListener):
28399         (WebCore::DeviceOrientationController::removeListener):
28400         (WebCore::DeviceOrientationController::removeAllListeners):
28401         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28402         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28403         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28404         (WebCore::DeviceOrientationController::supplementName):
28405         * dom/DeviceOrientationController.h:
28406         (WebCore):
28407         (DeviceOrientationController):
28408         (WebCore::DeviceOrientationController::isActive):
28409         (WebCore::DeviceOrientationController::client):
28410         (WebCore::DeviceOrientationController::from):
28411         * dom/Document.cpp:
28412         (WebCore::Document::suspendActiveDOMObjects):
28413         (WebCore::Document::resumeActiveDOMObjects):
28414         * loader/EmptyClients.h:
28415         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28416         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28417         * page/DOMWindow.cpp:
28418         (WebCore::DOMWindow::addEventListener):
28419         (WebCore::DOMWindow::removeEventListener):
28420         (WebCore::DOMWindow::removeAllEventListeners):
28421         * page/DeviceClient.h: Removed.
28422         * page/DeviceController.cpp: Removed.
28423         * page/DeviceController.h: Removed.
28424
28425 2012-10-31  Antti Koivisto  <antti@apple.com>
28426
28427         Remove stray calls to mutableAttributeData()
28428         https://bugs.webkit.org/show_bug.cgi?id=100849
28429
28430         Reviewed by Andreas Kling.
28431
28432         Changing the cached class attribute value does not require mutable attribute data.
28433
28434         * dom/Element.cpp:
28435         (WebCore::Element::classAttributeChanged):
28436         * dom/ElementAttributeData.h:
28437         (WebCore::ElementAttributeData::clearClass):
28438         
28439             Make const like setClass().
28440
28441 2012-10-31  Mike West  <mkwst@chromium.org>
28442
28443         X-Frame-Options console message should be associated with a request.
28444         https://bugs.webkit.org/show_bug.cgi?id=100735
28445
28446         Reviewed by Pavel Feldman.
28447
28448         In 99941, we added the possibility to tie console messages to requests,
28449         which enables automatic generation of stack traces, line numbers, etc.
28450         making the error simpler to diagnose for web developers. This patch
28451         uses the piping laid in that patch to improve the console message
28452         generated when a document is blocked by X-Frame-Options.
28453
28454         No new tests; the functionality is covered by changes to existing tests.
28455
28456         * dom/Document.cpp:
28457         (WebCore::Document::processHttpEquiv):
28458             Grab the request identifier from the currently active DocumentLoader
28459             and pass it into the console message.
28460         * loader/MainResourceLoader.cpp:
28461         (WebCore::MainResourceLoader::didReceiveResponse):
28462             Grab the request identifier from the MainResourceLoader, and pass it
28463             into the console message.
28464
28465 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28466
28467         Unreviewed, rolling out r133015.
28468         http://trac.webkit.org/changeset/133015
28469         https://bugs.webkit.org/show_bug.cgi?id=100847
28470
28471         broke Apple Win Debug compilation (Requested by podivilov on
28472         #webkit).
28473
28474         * inspector/InspectorAgent.cpp:
28475         (WebCore::InspectorAgent::InspectorAgent):
28476         (WebCore::InspectorAgent::clearFrontend):
28477         (WebCore::InspectorAgent::didCommitLoad):
28478         * inspector/InspectorAgent.h:
28479         (WebCore::InspectorAgent::didCommitLoadFired):
28480         (InspectorAgent):
28481         * inspector/InspectorInstrumentation.cpp:
28482         (WebCore):
28483         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28484         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28485         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28486         * inspector/InspectorInstrumentation.h:
28487         (InspectorInstrumentation):
28488         * inspector/InspectorPageAgent.cpp:
28489         (WebCore::InspectorPageAgent::restore):
28490         * inspector/InspectorRuntimeAgent.cpp:
28491         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28492         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28493         (WebCore::InspectorRuntimeAgent::run):
28494         (WebCore):
28495         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28496         * inspector/InspectorRuntimeAgent.h:
28497         (InspectorRuntimeAgent):
28498         * inspector/InstrumentingAgents.h:
28499         (WebCore):
28500         (WebCore::InstrumentingAgents::InstrumentingAgents):
28501         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28502         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28503         (InstrumentingAgents):
28504         * inspector/PageRuntimeAgent.cpp:
28505         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28506         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28507         (WebCore::PageRuntimeAgent::setFrontend):
28508         (WebCore::PageRuntimeAgent::clearFrontend):
28509         (WebCore::PageRuntimeAgent::enable):
28510         (WebCore::PageRuntimeAgent::didClearWindowObject):
28511         * inspector/PageRuntimeAgent.h:
28512         (PageRuntimeAgent):
28513         * inspector/WorkerRuntimeAgent.cpp:
28514         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28515         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28516         * inspector/WorkerRuntimeAgent.h:
28517         (WorkerRuntimeAgent):
28518
28519 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28520
28521         Add DeviceController base-class to remove duplication of DeviceXXXControler
28522         https://bugs.webkit.org/show_bug.cgi?id=96894
28523
28524         Reviewed by Hajime Morita.
28525
28526         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28527         And soon-to-be-added DeviceMotionController and ProximityController.
28528
28529         Covered by existing tests.
28530
28531         * CMakeLists.txt:
28532         * GNUmakefile.list.am:
28533         * Target.pri:
28534         * WebCore.gypi:
28535         * WebCore.vcproj/WebCore.vcproj:
28536         * WebCore.xcodeproj/project.pbxproj:
28537         * dom/DeviceOrientationClient.h:
28538         * dom/DeviceOrientationController.cpp:
28539         Remove member functions to move to DeviceController.
28540         - addListener(), removeListener(), removeAllListeners(), isActive()
28541         (WebCore::DeviceOrientationController::DeviceOrientationController):
28542         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28543         (WebCore::DeviceOrientationController::client):
28544         (WebCore::DeviceOrientationController::hasLastData):
28545         (WebCore::DeviceOrientationController::getLastEvent):
28546         (WebCore::DeviceOrientationController::from):
28547         (WebCore):
28548         * dom/DeviceOrientationController.h:
28549         (WebCore):
28550         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28551         (DeviceOrientationController):
28552         * dom/Document.cpp:
28553         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28554         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28555         (WebCore::Document::suspendActiveDOMObjects):
28556         (WebCore::Document::resumeActiveDOMObjects):
28557         * loader/EmptyClients.h:
28558         (EmptyDeviceClient):
28559         (WebCore::EmptyDeviceClient::startUpdating):
28560         (WebCore::EmptyDeviceClient::stopUpdating):
28561         (WebCore):
28562         * page/DOMWindow.cpp:
28563         (WebCore::DOMWindow::addEventListener):
28564         (WebCore::DOMWindow::removeEventListener):
28565         (WebCore::DOMWindow::removeAllEventListeners):
28566         * page/DeviceClient.h: Added.
28567         (WebCore):
28568         (DeviceClient):
28569         (WebCore::DeviceClient::~DeviceClient):
28570         * page/DeviceController.cpp: Added.
28571         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28572         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28573         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28574         (WebCore):
28575         (WebCore::DeviceController::DeviceController):
28576         (WebCore::DeviceController::addDeviceEventListener):
28577         (WebCore::DeviceController::removeDeviceEventListener):
28578         (WebCore::DeviceController::removeAllDeviceEventListeners):
28579         (WebCore::DeviceController::dispatchDeviceEvent):
28580         (WebCore::DeviceController::fireDeviceEvent):
28581         * page/DeviceController.h: Added.
28582         (WebCore):
28583         (DeviceController):
28584         (WebCore::DeviceController::~DeviceController):
28585         (WebCore::DeviceController::isActive):
28586         (WebCore::DeviceController::client):
28587         (WebCore::DeviceController::hasLastData):
28588         (WebCore::DeviceController::getLastEvent):
28589
28590 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28591
28592         Web Inspector: frame chooser does not work on subsequent inspector open.
28593         https://bugs.webkit.org/show_bug.cgi?id=100771
28594
28595         Reviewed by Yury Semikhatsky.
28596
28597         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28598         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28599         - Remove remains of the front-end reused signal from InspectorAgent
28600         - Send execution contexts post clear window object instead of post commit load.
28601
28602         * inspector/InspectorAgent.cpp:
28603         (WebCore::InspectorAgent::InspectorAgent):
28604         (WebCore::InspectorAgent::clearFrontend):
28605         (WebCore::InspectorAgent::didCommitLoad):
28606         * inspector/InspectorAgent.h:
28607         (InspectorAgent):
28608         * inspector/InspectorInstrumentation.cpp:
28609         (WebCore):
28610         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28611         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28612         * inspector/InspectorInstrumentation.h:
28613         (InspectorInstrumentation):
28614         * inspector/InspectorPageAgent.cpp:
28615         (WebCore::InspectorPageAgent::restore):
28616         * inspector/InspectorRuntimeAgent.cpp:
28617         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28618         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28619         (WebCore::InspectorRuntimeAgent::run):
28620         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28621         * inspector/InspectorRuntimeAgent.h:
28622         (InspectorRuntimeAgent):
28623         * inspector/InstrumentingAgents.h:
28624         (WebCore):
28625         (WebCore::InstrumentingAgents::InstrumentingAgents):
28626         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28627         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28628         (InstrumentingAgents):
28629         * inspector/PageRuntimeAgent.cpp:
28630         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28631         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28632         (WebCore::PageRuntimeAgent::setFrontend):
28633         (WebCore::PageRuntimeAgent::clearFrontend):
28634         (WebCore::PageRuntimeAgent::enable):
28635         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28636         * inspector/PageRuntimeAgent.h:
28637         (PageRuntimeAgent):
28638         * inspector/WorkerRuntimeAgent.cpp:
28639         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28640         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28641         (WebCore::WorkerRuntimeAgent::run):
28642         (WebCore):
28643         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28644         * inspector/WorkerRuntimeAgent.h:
28645         (WorkerRuntimeAgent):
28646
28647 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28648
28649         Calendar picker can flicker when opened from the suggestion picker
28650         https://bugs.webkit.org/show_bug.cgi?id=100816
28651
28652         Reviewed by Kent Tamura.
28653
28654         Calendar picker was opening before the hiding completed.
28655
28656         No new tests. Added test to date-suggestion-picker-key-operations.html.
28657
28658         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28659         * Resources/pagepopups/suggestionPicker.js:
28660         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28661         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28662
28663 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28664
28665         Reset binding test result after r132973
28666         https://bugs.webkit.org/show_bug.cgi?id=99178
28667
28668         Unreviewed gardening.
28669
28670         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28671         (WebCore::getJSFloat64ArrayConstructorTable):
28672         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28673         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28674
28675 2012-10-31  Mike West  <mkwst@chromium.org>
28676
28677         Script run from an isolated world should bypass a page's CSP.
28678         https://bugs.webkit.org/show_bug.cgi?id=97398
28679
28680         Reviewed by Adam Barth.
28681
28682         A page's Content Security Policy currently applies to all resources
28683         loaded, regardless of their source. That generally makes sense, but
28684         proves problematic when considering script run from an isolated
28685         world (Chrome extensions, for instance). These scripts should be allowed
28686         to inject resources into a page's DOM without eiher being restricted by
28687         the page's active CSP, or generating violation reports that spam the
28688         page owner.
28689
28690         Ideally, the isolated world could define its own Content Security Policy
28691         which should be applied to resources it loads. For the moment, this
28692         patch accepts a String that we can parse later on, but only uses it in
28693         a binary way. If a non-empty policy String is provided, we bypass the
28694         main world's CSP checks. If an empty String is provided, the main
28695         world's CSP checks remain active.
28696
28697         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28698
28699         (WebCore::isolatedWorldContentSecurityPolicies):
28700         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28701         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28702         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28703         * bindings/v8/DOMWrapperWorld.h:
28704         (DOMWrapperWorld):
28705             Mechanisms for setting and clearing Content Security Policies from
28706             isolated worlds; implemented in the same HashMappy way as
28707             SecurityOrigin.
28708         * bindings/v8/ScriptController.cpp:
28709         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28710         (WebCore):
28711         * bindings/v8/ScriptController.h:
28712         (ScriptController):
28713             Adding a method to ScriptController to query the state of the
28714             current world's Content Security Policy. We'll drop this once we can
28715             apply a policy more directly, but for the moment it's necessary for
28716             the next bit.
28717         * loader/cache/CachedResourceLoader.cpp:
28718         (WebCore::CachedResourceLoader::canRequest):
28719             Check the new ScriptController method, and only perform CSP checks
28720             when loading resources if we're executing code from the main world,
28721             or an isolated world with no Content Security Policy set.
28722
28723 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28724
28725         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28726
28727         * WebCore.exp.in:
28728
28729 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28730
28731         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28732         https://bugs.webkit.org/show_bug.cgi?id=100824
28733
28734         Reviewed by Alexander Pavlov.
28735
28736         In many classes we have pointer to a client object. These references should be
28737         reported as weak pointers and the client's memory usage should be reported when
28738         the client is reached from its instrumented owner where we know exact type of
28739         the client. Otherwise we would need to add reportMemoryUsage to all client
28740         interfaces which places additional burden on the client implementers and blurs
28741         the instrumentation boundaries.
28742
28743         * inspector/InspectorController.cpp:
28744         (WebCore::InspectorController::reportMemoryUsage):
28745         * inspector/InspectorDebuggerAgent.cpp:
28746         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28747         * inspector/InspectorMemoryAgent.cpp:
28748         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28749         * inspector/InspectorOverlay.cpp:
28750         (WebCore::InspectorOverlay::reportMemoryUsage):
28751         * inspector/InspectorResourceAgent.cpp:
28752         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28753         * page/Page.cpp:
28754         (WebCore::Page::reportMemoryUsage):
28755
28756 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28757
28758         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28759
28760         * WebCore.exp.in:
28761
28762 2012-10-31  Eric Seidel  <eric@webkit.org>
28763
28764         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28765         https://bugs.webkit.org/show_bug.cgi?id=100306
28766
28767         Reviewed by Abhishek Arya.
28768
28769         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28770         the rendering code w/o considering that it makes a virtual function call.
28771         Originally I just fixed the one callsite which was showing up on the sample to
28772         use children()->firstChild() directly.  However after further thought, this
28773         broader solution seemed the better way to go.  The first patch was a 15% win for
28774         this large table, this broader solution was a 30%!? win.
28775
28776         The elephant in the room for this table is that we're walking the whole table
28777         for many nextColumn calls.  But that I will solve in a later bug.
28778
28779         * rendering/RenderBlock.h:
28780         (WebCore::RenderBlock::firstChild):
28781         (WebCore::RenderBlock::lastChild):
28782         (RenderBlock):
28783         * rendering/RenderObject.h:
28784         (RenderObject):
28785         * rendering/RenderTableCol.h:
28786         (WebCore::RenderTableCol::firstChild):
28787         (WebCore::RenderTableCol::lastChild):
28788         (RenderTableCol):
28789
28790 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28791
28792         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28793         https://bugs.webkit.org/show_bug.cgi?id=98294
28794
28795         Reviewed by Chris Rogers.
28796
28797         Regenerated the concatenated impulse responses file with
28798         elevations in increasing order per azimuth. In the previous
28799         version of this file the elevations for 315, 330 and 345 were
28800         concatenated at the wrong indexes.
28801
28802         * platform/audio/resources/Composite.wav:
28803
28804 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28805
28806         Full-page PDFPlugin should support inline form editing
28807         https://bugs.webkit.org/show_bug.cgi?id=100155
28808
28809         Reviewed by Dan Bernstein.
28810
28811         Add form controls corresponding to Text and Choice PDF annotations,
28812         allowing for single- and multi-line text input, and <option>-like input.
28813
28814         Currently, forms are only implemented for full-page PDF documents.
28815
28816         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28817         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28818
28819 2012-10-30  Eric Seidel  <eric@webkit.org>
28820
28821         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28822         https://bugs.webkit.org/show_bug.cgi?id=98800
28823
28824         Reviewed by Sam Weinig.
28825
28826         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28827
28828         OverlapMap previously used Regions to track Layer bounds rects. 
28829         Unfortunately unioning a list of Regions is O(N^2)
28830         where N is the number of Shapes (in this case rects).
28831         This is because Shapes are immutable, so to union two shapes, we copy
28832         both Shapes' segment/span vectors into a single new Shape.
28833         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28834         the segments of the first Shape N times before we have the final Region/Shape
28835         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28836         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28837
28838         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28839         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28840         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28841
28842         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28843         We just collect these rects to end up doing nothing with them. :)
28844
28845         * rendering/RenderLayerCompositor.cpp:
28846         (WebCore::RenderLayerCompositor::OverlapMap::add):
28847         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28848         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28849         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28850         (RenderLayerCompositor::OverlapMap):
28851
28852 2012-10-30  Beth Dakin  <bdakin@apple.com>
28853
28854         https://bugs.webkit.org/show_bug.cgi?id=100813
28855         ScrollingCoordinatorMac::stateNodeForID() should return a 
28856         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28857
28858         Reviewed by Sam Weinig.
28859
28860         ScrollingCoordinatorMac::stateNodeForID() should return a 
28861         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28862         it can be used for other types of nodes once we add them.
28863         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28864         (ScrollingCoordinatorMac):
28865         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28866         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28867         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28868         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28869         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28870
28871 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28872
28873         F4 inside <input type=time> should not open calendar picker
28874         https://bugs.webkit.org/show_bug.cgi?id=100730
28875
28876         Reviewed by Kent Tamura.
28877
28878         We lacked the check to see if the picker indicator is visible.
28879
28880         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28881
28882         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28883         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28884
28885 2012-10-30  Kent Tamura  <tkent@chromium.org>
28886
28887         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28888         https://bugs.webkit.org/show_bug.cgi?id=100772
28889
28890         Reviewed by Abhishek Arya.
28891
28892         'change' and 'input' events are asynchronous and not
28893         cancelable. We can use ScopedEvent.
28894
28895         Test: fast/forms/range/range-type-change-onchange.html
28896
28897         * dom/Node.cpp:
28898         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28899         (WebCore::Node::dispatchInputEvent): Ditto.
28900         * html/HTMLInputElement.cpp:
28901         (WebCore::HTMLInputElement::setValue):
28902         Make a scope to delay event dispatching.
28903         * html/RangeInputType.cpp:
28904         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28905
28906 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28907
28908         Fix issues with filters and reflections
28909         https://bugs.webkit.org/show_bug.cgi?id=100308
28910
28911         Reviewed by Dirk Schulze.
28912
28913         Composited filters were being applied to the wrong CALayer. The code used
28914         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28915         to; doing so causes console spew), or a CALayer that is used for reflection
28916         flattening, which again is the wrong layer.
28917
28918         Test: css3/filters/composited-reflected.html
28919
28920         * platform/graphics/ca/GraphicsLayerCA.cpp:
28921         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28922         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28923         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28924         and use m_layerClones, not primaryLayerClones().
28925         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28926         from the source layer.
28927         * platform/graphics/ca/PlatformCALayer.h:
28928         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28929         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28930         (PlatformCALayer::setFilters): Remove blank line.
28931         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28932         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28933         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28934
28935 2012-10-30  Beth Dakin  <bdakin@apple.com>
28936
28937         https://bugs.webkit.org/show_bug.cgi?id=100809
28938         ScrollingCoordinator::attachToStateTree() should take an enum 
28939         indicating what type of node to create
28940
28941         Reviewed by Simon Fraser.
28942
28943         New enum ScrollingNodeType will soon have other values, such as 
28944         FixedNode.
28945         * page/scrolling/ScrollingCoordinator.h:
28946         (WebCore::ScrollingCoordinator::attachToStateTree):
28947         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28948         (ScrollingCoordinatorMac):
28949
28950         This patch generalizes this function so that it can be used to create 
28951         different types of nodes and so that it is actually ready to create 
28952         child nodes. 
28953         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28954         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28955
28956         The rootStateNode is always a ScrollingNode.
28957         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28958
28959         For the time being, always create a ScrollingNode.
28960         * rendering/RenderLayerBacking.cpp:
28961         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
28962
28963 2012-10-30  Gregg Tavares  <gman@google.com>
28964
28965         Set the initial scissor box for WebGL
28966         https://bugs.webkit.org/show_bug.cgi?id=100804
28967
28968         Reviewed by Kenneth Russell.
28969
28970         The initial scissor box needs to be set for WebGL
28971
28972         No new tests as no new functionality.
28973
28974         * html/canvas/WebGLRenderingContext.cpp:
28975         (WebCore):
28976         (WebCore::WebGLRenderingContext::initializeNewContext):
28977
28978 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
28979
28980         [BlackBerry] PurgeCredential should also purge the persisted credential store
28981         https://bugs.webkit.org/show_bug.cgi?id=100744
28982
28983         Reviewed by George Staikos.
28984
28985         When challenged by the server, we will check the credential in-memory and from the persistent storage.
28986         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
28987         it will be sent to the server next time been challenged, instead of prompting the user.
28988
28989         * platform/network/blackberry/NetworkJob.cpp:
28990         (WebCore::NetworkJob::purgeCredentials):
28991
28992 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28993
28994         DOM URL is flaky when workers are used
28995         https://bugs.webkit.org/show_bug.cgi?id=99178
28996
28997         Reviewed by Geoffrey Garen.
28998
28999         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
29000
29001         Test: fast/workers/worker-domurl.html
29002
29003         * bindings/scripts/CodeGeneratorJS.pm:
29004         (constructorHashTableAccessor):
29005         (GenerateConstructorDefinition):
29006
29007 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
29008
29009         Coordinated Graphics: Remove unused methods
29010         https://bugs.webkit.org/show_bug.cgi?id=100799
29011
29012         Reviewed by Noam Rosenthal.
29013
29014         Currently, there are several unused methods regarding Coordinated
29015         Graphics. This patch removes those unused methods.
29016
29017         No new tests (No change in behavior).
29018
29019         * platform/graphics/texmap/TextureMapperGL.cpp:
29020
29021 2012-10-30  Hans Muller  <hmuller@adobe.com>
29022
29023         [CSS Exclusions] Multiple segment polygon layout does not get all segments
29024         https://bugs.webkit.org/show_bug.cgi?id=100039
29025
29026         Reviewed by Dirk Schulze.
29027
29028         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
29029         and polygons with horizontal edges in general.
29030
29031         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
29032                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
29033
29034         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
29035         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
29036         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
29037         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
29038         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
29039         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
29040         (WebCore::ExclusionPolygon::edgeAt): New method.
29041         (WebCore::ExclusionPolygon::numberOfEdges): New method.
29042         (ExclusionPolygon): Added support for retrieving edges.
29043         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
29044         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
29045         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
29046         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
29047         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
29048
29049 2012-10-30  Chris Evans  <cevans@google.com>
29050
29051         Improve performance of MaskPtr.
29052         https://bugs.webkit.org/show_bug.cgi?id=100790
29053
29054         Reviewed by Eric Seidel.
29055
29056         Calculate the mask once, and store it as a fast-access member variable.
29057         Also avoid unneccessary integer width expansion in index calculation.
29058         Parser/tiny-innerHTML.html has a high stddev.
29059         Best result I've seen pre-patch is 5.70 runs/s.
29060         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
29061         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
29062         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
29063
29064         * rendering/RenderArena.cpp:
29065         (MaskPtr): Use a passed-in mask for the mask operation.
29066         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
29067         (WebCore::RenderArena::allocate):
29068         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
29069         * rendering/RenderArena.h:
29070         (RenderArena): Store the freelist mask as a member variable.
29071
29072 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
29073
29074         local(Helvetica) in src descriptor prevent fallback
29075         https://bugs.webkit.org/show_bug.cgi?id=100446
29076
29077         Reviewed by Dan Bernstein.
29078
29079         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
29080         of font family names, so that if the family name specified in the font-family
29081         property is not available on the system, but the its alias is available,
29082         it will be used instead. This is appropriate for the font-family property,
29083         but not for font family names specified in the local() function of the src
29084         descriptor in a @font-face rule.
29085
29086         This patch disables the mechanism while checking src descriptor of @font-face.
29087
29088         No new tests. It's difficult to test the change because 'Helvetica' can
29089         be mapped any other font. For example, chromium DRT uses FontConfig to
29090         map Helvetica to Times New Roman. Other ports may map Helvetica to other
29091         fonts. We can't define the expected result.
29092
29093         * css/CSSFontFaceSource.cpp:
29094         (WebCore::CSSFontFaceSource::getFontData):
29095         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
29096         This disables aliasing font family names in FontCache.
29097
29098 2012-10-30  Beth Dakin  <bdakin@apple.com>
29099
29100         https://bugs.webkit.org/show_bug.cgi?id=100796
29101         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29102
29103         Reviewed by Simon Fraser.
29104
29105         ScrollingConstraints.h currently contains an abstract class called 
29106         ViewportConstraints that is intended to encapsulate data and logic 
29107         required to reposition elements whose layout depends on the viewport 
29108         rect (positions fixed and sticky), when scrolling and zooming. 
29109         However, at this time there is only a subclass for sticky. We should 
29110         add a sub-class for fixed. This is required to get pages with fixed 
29111         position elements scrolling on the scrolling thread.
29112
29113         * page/scrolling/ScrollingConstraints.cpp:
29114         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29115         (WebCore):
29116         * page/scrolling/ScrollingConstraints.h:
29117         (WebCore::ViewportConstraints::ViewportConstraints):
29118         (ViewportConstraints):
29119         (WebCore::ViewportConstraints::setAnchorEdges):
29120         (FixedPositionViewportConstraints):
29121         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29122         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29123         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29124         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29125         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29126         (WebCore):
29127
29128 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29129
29130         [BlackBerry] update form theme for BB10.
29131         https://bugs.webkit.org/show_bug.cgi?id=100760
29132
29133         Reviewed by Rob Buis.
29134
29135         RIM PR:222126
29136         Introduce slide function to paint new theme for the form controls.
29137
29138         No new tests.
29139
29140         * css/themeBlackBerry.css:
29141         (select):
29142         * platform/blackberry/RenderThemeBlackBerry.cpp:
29143         (WebCore):
29144         (WebCore::drawControl): Added.
29145         (WebCore::drawThreeSlice): Added.
29146         (WebCore::drawNineSlice): Added.
29147         (WebCore::loadImage): Added.
29148         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29149         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29150         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29151         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29152         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29153         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29154         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29155         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29156         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29157         * platform/blackberry/RenderThemeBlackBerry.h:
29158         (RenderThemeBlackBerry):
29159
29160 2012-10-30  Rick Byers  <rbyers@chromium.org>
29161
29162         cssText for cursor property doesn't include hotspot
29163         https://bugs.webkit.org/show_bug.cgi?id=99530
29164
29165         Reviewed by Darin Adler.
29166
29167         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29168         Also explicitly track whether or not a hotspot was supplied in the parser,
29169         while still using the existing convention of (-1,-1) to denote no hotspot
29170         in the rest of the system.
29171
29172         Test: fast/css/cursor-parsing.html
29173
29174         * css/CSSCursorImageValue.cpp:
29175         (WebCore::CSSCursorImageValue::customCssText):
29176         * css/CSSCursorImageValue.h:
29177         (CSSCursorImageValue):
29178
29179 2012-10-30  Kenneth Russell  <kbr@google.com>
29180
29181         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29182         https://bugs.webkit.org/show_bug.cgi?id=100714
29183
29184         Reviewed by Stephen White.
29185
29186         For the moment, only use ImageBuffer::copyToPlatformTexture when
29187         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29188         in header. Restriction will be lifted once the implementations
29189         (currently only Chromium has one) have been fixed; see bug 100715.
29190
29191         No new tests; manually ran WebGL conformance test
29192         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29193         hardware on Mac OS.
29194
29195         * html/canvas/WebGLRenderingContext.cpp:
29196         (WebCore):
29197         (WebCore::WebGLRenderingContext::texImage2D):
29198         * platform/graphics/ImageBuffer.h:
29199         (ImageBuffer):
29200
29201 2012-10-30  Nico Weber  <thakis@chromium.org>
29202
29203         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29204         https://bugs.webkit.org/show_bug.cgi?id=100320
29205
29206         Reviewed by Eric Seidel.
29207
29208         Adding more than 1 element past an array is undefined, so don't do it.
29209
29210         No test, since in practice ifd will just overflow and `end - ifd` will
29211         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29212         down will catch that case.
29213
29214         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29215         (WebCore::readImageOrientation):
29216
29217 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29218
29219         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29220         https://bugs.webkit.org/show_bug.cgi?id=100558
29221
29222         Reviewed by Dean Jackson.
29223
29224         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29225         but more is going to come in the following patches.
29226
29227         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29228         such operations for now.
29229         
29230         No new tests, there is no new functionality yet.
29231
29232         * CMakeLists.txt:
29233         * GNUmakefile.list.am:
29234         * Target.pri:
29235         * WebCore.gypi:
29236         * WebCore.vcproj/WebCore.vcproj:
29237         * WebCore.xcodeproj/project.pbxproj:
29238         * css/CSSComputedStyleDeclaration.cpp:
29239         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29240         * css/StyleResolver.cpp:
29241         (WebCore::StyleResolver::createFilterOperations):
29242         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29243         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29244         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29245         (PlatformCALayer::filtersCanBeComposited):
29246         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29247         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29248         * platform/graphics/filters/FilterOperation.h:
29249         * platform/graphics/filters/FilterOperations.cpp:
29250         (WebCore::FilterOperations::hasCustomFilter):
29251         (WebCore::FilterOperations::getOutsets):
29252         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29253         (WebCore):
29254         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29255         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29256         (WebCore::ValidatedCustomFilterOperation::blend):
29257         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29258         (WebCore):
29259         (ValidatedCustomFilterOperation):
29260         (WebCore::ValidatedCustomFilterOperation::create):
29261         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29262         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29263         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29264         (WebCore::ValidatedCustomFilterOperation::operator==):
29265
29266 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29267
29268         [Mac] Sync up FeatureDefine Configuration Files
29269         https://bugs.webkit.org/show_bug.cgi?id=100171
29270
29271         Reviewed by David Kilzer.
29272
29273         Follow up to better coordinate with iOS feature defines. Make:
29274
29275           - ENABLE_FILTERS always on
29276           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29277
29278         * Configurations/FeatureDefines.xcconfig:
29279
29280 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29281
29282         [Mac] Sync up FeatureDefine Configuration Files
29283         https://bugs.webkit.org/show_bug.cgi?id=100171
29284
29285         Reviewed by David Kilzer.
29286
29287         Ensure an identical FeatureDefine files across all projects. Changes:
29288
29289           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29290           - ENABLE_PDFKIT_PLUGIN should be in all
29291           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29292           - ENABLE_ENCRYPTED_MEDIA should be in all
29293           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29294           - Some alphabetical ordering cleanup
29295
29296         * Configurations/FeatureDefines.xcconfig:
29297
29298 2012-10-30  Andreas Kling  <kling@webkit.org>
29299
29300         StylePropertySet: Convert more logic to use PropertyReference.
29301         <http://webkit.org/b/100779>
29302
29303         Reviewed by Antti Koivisto.
29304
29305         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29306         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29307
29308         * css/CSSComputedStyleDeclaration.cpp:
29309         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29310         * css/CSSComputedStyleDeclaration.h:
29311         * css/CSSStyleDeclaration.h:
29312         * css/PropertySetCSSStyleDeclaration.cpp:
29313         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29314         * css/PropertySetCSSStyleDeclaration.h:
29315         * css/StylePropertySet.cpp:
29316         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29317         (WebCore::StylePropertySet::fontValue):
29318         (WebCore::StylePropertySet::get4Values):
29319         (WebCore::StylePropertySet::getPropertyCSSValue):
29320         (WebCore::StylePropertySet::removeProperty):
29321         (WebCore::StylePropertySet::propertyIsImportant):
29322         (WebCore::StylePropertySet::getPropertyShorthand):
29323         (WebCore::StylePropertySet::isPropertyImplicit):
29324         (WebCore::StylePropertySet::setProperty):
29325         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29326         (WebCore::StylePropertySet::findPropertyIndex):
29327         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29328         (WebCore::StylePropertySet::propertyMatches):
29329         (WebCore::StylePropertySet::removeEquivalentProperties):
29330         * css/StylePropertySet.h:
29331         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29332         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29333
29334 2012-10-30  Eric Seidel  <eric@webkit.org>
29335
29336         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29337         https://bugs.webkit.org/show_bug.cgi?id=100428
29338
29339         Reviewed by Julien Chaffraix.
29340
29341         RenderTable is now like all other clients of Vector instead of being
29342         needlessly different. :)
29343
29344         insert, append and grow all use the same expandCapacity logic under the covers
29345         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29346         by default for unknown types.
29347
29348         * rendering/RenderTable.cpp:
29349         (WebCore::RenderTable::splitColumn):
29350         (WebCore::RenderTable::appendColumn):
29351         * rendering/RenderTable.h:
29352         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29353
29354 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29355
29356         Unreviewed, rolling out r132927.
29357         http://trac.webkit.org/changeset/132927
29358         https://bugs.webkit.org/show_bug.cgi?id=100558
29359
29360         Compile error on Chromium builders
29361
29362         * CMakeLists.txt:
29363         * GNUmakefile.list.am:
29364         * Target.pri:
29365         * WebCore.gypi:
29366         * WebCore.vcproj/WebCore.vcproj:
29367         * WebCore.xcodeproj/project.pbxproj:
29368         * css/CSSComputedStyleDeclaration.cpp:
29369         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29370         * css/StyleResolver.cpp:
29371         (WebCore::StyleResolver::createFilterOperations):
29372         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29373         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29374         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29375         (PlatformCALayer::filtersCanBeComposited):
29376         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29377         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29378         * platform/graphics/filters/FilterOperation.h:
29379         * platform/graphics/filters/FilterOperations.cpp:
29380         (WebCore::FilterOperations::hasCustomFilter):
29381         (WebCore::FilterOperations::getOutsets):
29382         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29383         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29384
29385 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29386
29387         [chromium] Restrict link highlights to targets that display a hand-cursor
29388         https://bugs.webkit.org/show_bug.cgi?id=99862
29389
29390         Reviewed by James Robinson.
29391
29392         To avoid applying highlights to inappropriate targets, such as large divs with
29393         click handlers installed, test candidate targets and only highlight them if they
29394         would normally display a hand cursor on mouse over. This is a heuristic, but has
29395         been tested and found effective in practice.
29396
29397         This CL refactors EventHandler::selectCursor() to make the logic for determining
29398         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29399
29400         Relies on existing cursor tests.
29401
29402         * page/EventHandler.cpp:
29403         (WebCore::EventHandler::useHandCursor):
29404         (WebCore):
29405         (WebCore::EventHandler::selectCursor):
29406         * page/EventHandler.h:
29407         (EventHandler):
29408
29409 2012-10-30  Rob Buis  <rbuis@rim.com>
29410
29411         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29412         https://bugs.webkit.org/show_bug.cgi?id=100783
29413
29414         Reviewed by Yong Li.
29415
29416         PR 220513.
29417
29418         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29419         compatibility, but not needed anymore.
29420
29421         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29422         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29423         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29424
29425 2012-10-30  Glenn Adams  <glenn@skynav.com>
29426
29427         [CSS] Expand -webkit-line-break value space
29428         https://bugs.webkit.org/show_bug.cgi?id=100739
29429
29430         Reviewed by Eric Seidel.
29431
29432         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29433         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29434         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29435
29436         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29437         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29438         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29439         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29440         default semantics.
29441
29442         * css/CSSComputedStyleDeclaration.cpp:
29443         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29444         Update from kthmlLineBreak() to lineBreak().
29445
29446         * css/CSSParser.cpp:
29447         (WebCore::isValidKeywordPropertyAndValue):
29448         Update values supported for CSSPropertyWebkitLineBreak.
29449
29450         * css/CSSPrimitiveValueMappings.h:
29451         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29452         (WebCore::CSSPrimitiveValue::operator LineBreak):
29453         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29454
29455         * css/CSSValueKeywords.in:
29456         Update keywords used for -webkit-line-break.
29457
29458         * css/StyleBuilder.cpp:
29459         (WebCore::StyleBuilder::StyleBuilder):
29460         Update names for line break style getter/setter.
29461
29462         * rendering/style/RenderStyle.cpp:
29463         (WebCore::RenderStyle::diff):
29464         Remove khtml prefix on line break related state.
29465
29466         * rendering/style/RenderStyle.h:
29467         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29468         enumeration type.
29469
29470         * rendering/style/RenderStyleConstants.h:
29471         Rename EKHTMLLineBreak enumeration to LineBreak.
29472         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29473         use better names.
29474
29475         * rendering/style/StyleRareInheritedData.cpp:
29476         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29477         (WebCore::StyleRareInheritedData::operator==):
29478         Remove khtml prefix on line break related state references.
29479
29480         * rendering/style/StyleRareInheritedData.h:
29481         (StyleRareInheritedData):
29482         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29483         of which 5 are now used.
29484
29485 2012-10-30  Antti Koivisto  <antti@apple.com>
29486
29487         Avoid unnecessary style recalcs on class attribute mutation
29488         https://bugs.webkit.org/show_bug.cgi?id=100776
29489
29490         Reviewed by Andreas Kling.
29491
29492         There is no need to invalidate element style on class attribute change if neither the added
29493         or removed classes featured in any active stylesheet.
29494
29495         * css/RuleFeature.cpp:
29496         (WebCore::RuleFeatureSet::add):
29497         (WebCore::RuleFeatureSet::clear):
29498         (WebCore::RuleFeatureSet::reportMemoryUsage):
29499         * css/RuleFeature.h:
29500         (RuleFeatureSet):
29501         * css/RuleSet.cpp:
29502         (WebCore::collectFeaturesFromSelector):
29503         
29504             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29505             already collected.
29506
29507         * css/StyleResolver.cpp:
29508         (WebCore::StyleResolver::hasSelectorForClass):
29509         
29510             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29511
29512         (WebCore):
29513         * css/StyleResolver.h:
29514         * css/StyleScopeResolver.h:
29515         (WebCore):
29516         * dom/Element.cpp:
29517         (WebCore::collectAddedAndRemovedClasses):
29518         (WebCore):
29519         (WebCore::Element::classAttributeChanged):
29520         
29521             Figure out which classes were added and removed. Test if they are present in any style
29522             rule and invalidate the style only if they are.
29523
29524         * dom/SpaceSplitString.cpp:
29525         (WebCore::SpaceSplitStringData::add):
29526         (WebCore::SpaceSplitStringData::remove):
29527         (WebCore::SpaceSplitString::add):
29528         (WebCore::SpaceSplitString::remove):
29529         
29530             Added bool return value to indicate if anything was actually removed. Reorganized 
29531             the code a bit to avoid unnecessary uniquing when nothing changes.
29532
29533         * dom/SpaceSplitString.h:
29534         (SpaceSplitStringData):
29535         (SpaceSplitString):
29536
29537 2012-10-30  Robert Hogan  <robert@webkit.org>
29538
29539         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29540         https://bugs.webkit.org/show_bug.cgi?id=29648
29541
29542         Reviewed by Levi Weintraub.
29543
29544         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29545         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29546         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29547         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29548         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29549         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29550
29551         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29552
29553         * rendering/RenderBlockLineLayout.cpp:
29554         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29555
29556 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29557
29558         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29559         https://bugs.webkit.org/show_bug.cgi?id=100558
29560
29561         Reviewed by Dean Jackson.
29562
29563         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29564         but more is going to come in the following patches.
29565
29566         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29567         such operations for now.
29568         
29569         No new tests, there is no new functionality yet.
29570
29571         * CMakeLists.txt:
29572         * GNUmakefile.list.am:
29573         * Target.pri:
29574         * WebCore.gypi:
29575         * WebCore.vcproj/WebCore.vcproj:
29576         * WebCore.xcodeproj/project.pbxproj:
29577         * css/CSSComputedStyleDeclaration.cpp:
29578         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29579         * css/StyleResolver.cpp:
29580         (WebCore::StyleResolver::createFilterOperations):
29581         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29582         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29583         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29584         (PlatformCALayer::filtersCanBeComposited):
29585         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29586         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29587         * platform/graphics/filters/FilterOperation.h:
29588         * platform/graphics/filters/FilterOperations.cpp:
29589         (WebCore::FilterOperations::hasCustomFilter):
29590         (WebCore::FilterOperations::getOutsets):
29591         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29592         (WebCore):
29593         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29594         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29595         (WebCore::ValidatedCustomFilterOperation::blend):
29596         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29597         (WebCore):
29598         (ValidatedCustomFilterOperation):
29599         (WebCore::ValidatedCustomFilterOperation::create):
29600         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29601         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29602         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29603         (WebCore::ValidatedCustomFilterOperation::operator==):
29604
29605 2012-10-29  Anders Carlsson  <andersca@apple.com>
29606
29607         Build WebKit as C++11 on Mac
29608         https://bugs.webkit.org/show_bug.cgi?id=100720
29609
29610         Reviewed by Daniel Bates.
29611
29612         * Configurations/Base.xcconfig:
29613         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29614
29615         * platform/graphics/FontPlatformData.h:
29616         (WebCore::FontPlatformData::hash):
29617         * platform/graphics/cg/GraphicsContextCG.cpp:
29618         (WebCore::GraphicsContext::drawLine):
29619         (WebCore::GraphicsContext::strokeArc):
29620         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29621         (WebCore::CustomFilterProgramInfo::hash):
29622         (WebCore::ProtectionSpaceHash::hash):
29623         * platform/network/cf/FormDataStreamCFNet.cpp:
29624         (WebCore::setHTTPBody):
29625         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29626         
29627         * platform/mac/ClipboardMac.mm:
29628         (WebCore::ClipboardMac::createDragImage):
29629         * platform/mac/CursorMac.mm:
29630         (WebCore::createNamedCursor):
29631         * platform/mac/ScrollViewMac.mm:
29632         (WebCore::ScrollView::platformSetContentsSize):
29633         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29634
29635         * platform/mac/CookieJar.mm:
29636         (WebCore::cookiesEnabled):
29637         * platform/network/mac/ResourceHandleMac.mm:
29638         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29639         Add explicit casts to NSHTTPCookieAcceptPolicy.
29640
29641         * platform/mac/WebCoreNSURLExtras.h:
29642         * platform/mac/WebCoreNSURLExtras.mm:
29643         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29644         (WebCore::dataForURLComponentType):
29645         * platform/network/ProtectionSpaceHash.h:
29646         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29647         functions are exported from WebCore.
29648
29649 2012-10-30  Dan Bernstein  <mitz@apple.com>
29650
29651         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29652         https://bugs.webkit.org/show_bug.cgi?id=100768
29653
29654         Reviewed by Anders Carlsson.
29655
29656         r121299 introduced code to restore the paragraph range by saving its length and start offset
29657         relative to the document. The latter was obtained by iterating over the range starting at
29658         the beginning of the document and ending at the beginning of the paragraph range. However,
29659         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29660         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29661         tree).
29662
29663         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29664
29665         * editing/Editor.cpp:
29666         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29667         root container of paragraphRange, using the same logic used by
29668         checkForDifferentRootContainer() in Range.cpp.
29669
29670 2012-10-30  Dan Carney  <dcarney@google.com>
29671
29672         Remove ensureAuxiliaryContext
29673         https://bugs.webkit.org/show_bug.cgi?id=99975
29674
29675         Reviewed by Adam Barth.
29676
29677         Removed auxilliaryContext as use if it is problematic in IDB.
29678
29679         No new tests. No change in functionality.
29680
29681         * Modules/indexeddb/IDBCursor.cpp:
29682         (WebCore::IDBCursor::update):
29683         (WebCore::IDBCursor::setValueReady):
29684         * Modules/indexeddb/IDBCursor.h:
29685         (IDBCursor):
29686         * Modules/indexeddb/IDBObjectStore.cpp:
29687         (WebCore::generateIndexKeysForValue):
29688         (WebCore::IDBObjectStore::put):
29689         (WebCore):
29690         * Modules/indexeddb/IDBRequest.cpp:
29691         (WebCore::IDBRequest::onSuccess):
29692         (WebCore::IDBRequest::dispatchEvent):
29693         * bindings/v8/IDBBindingUtilities.cpp:
29694         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29695         (WebCore::deserializeIDBValue):
29696         (WebCore::injectIDBKeyIntoScriptValue):
29697         * bindings/v8/IDBBindingUtilities.h:
29698         (WebCore):
29699         * bindings/v8/V8Binding.cpp:
29700         (WebCore::toV8Context):
29701         (WebCore):
29702         * bindings/v8/V8Binding.h:
29703         (WebCore):
29704         * bindings/v8/V8PerIsolateData.cpp:
29705         (WebCore):
29706         * bindings/v8/V8PerIsolateData.h:
29707
29708 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29709
29710         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29711         https://bugs.webkit.org/show_bug.cgi?id=98989
29712
29713         Reviewed by Dean Jackson.
29714
29715         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29716         FECustomFilter now plays a role in extending FilterEffect and delegates
29717         rendering CSS Shaders to CustomFilterRenderer.
29718
29719         CustomFilterRenderer does not know Filter and FilterEffect. We can
29720         create a CustomFilterRenderer instance with only GraphicsContext3D and
29721         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29722         create the CustomFilterRenderer instance if Accelerated Compositing has
29723         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29724
29725         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29726
29727         No new tests. Covered by css3/filters/custom
29728
29729         * CMakeLists.txt:
29730         * GNUmakefile.list.am:
29731         * Target.pri:
29732         * WebCore.gypi:
29733         * WebCore.vcproj/WebCore.vcproj:
29734         * WebCore.xcodeproj/project.pbxproj:
29735         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29736         (WebCore):
29737         (WebCore::orthogonalProjectionMatrix):
29738         (WebCore::CustomFilterRenderer::create):
29739         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29740         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29741         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29742         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29743         (WebCore::CustomFilterRenderer::draw):
29744         (WebCore::CustomFilterRenderer::prepareForDrawing):
29745         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29746         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29747         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29748         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29749         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29750         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29751         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29752         (WebCore::CustomFilterRenderer::bindProgramParameters):
29753         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29754         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29755         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29756         (WebCore):
29757         (CustomFilterRenderer):
29758           CustomFilterRenderer renders custom filters in GPU using a
29759           GraphicsContext3D.
29760         * platform/graphics/filters/FECustomFilter.cpp:
29761         (WebCore::FECustomFilter::FECustomFilter):
29762         (WebCore::FECustomFilter::create):
29763         (WebCore::FECustomFilter::deleteRenderBuffers):
29764         (WebCore::FECustomFilter::drawFilterMesh):
29765         (WebCore::FECustomFilter::prepareForDrawing):
29766         (WebCore::FECustomFilter::applyShader):
29767         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29768         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29769         (WebCore::FECustomFilter::resizeContext):
29770         * platform/graphics/filters/FECustomFilter.h:
29771         (WebCore):
29772         (FECustomFilter):
29773         * rendering/FilterEffectRenderer.cpp:
29774         (WebCore::createCustomFilterEffect):
29775
29776 2012-10-30  Mike West  <mkwst@chromium.org>
29777
29778         Web Inspector: Associate console messages with the requests that caused them.
29779         https://bugs.webkit.org/show_bug.cgi?id=99941
29780
29781         Reviewed by Pavel Feldman.
29782
29783         The inspector currently supports the concept of a request's "initiator"
29784         in order to add context to console messages that are generated in
29785         response to a specific request. The initiator is used as the message's
29786         anchor link iff a requestID is present, and no stack trace is present.
29787
29788         Currently, this functionality is only exposed to three specific
29789         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29790         'InspectorConsoleAgent::didReceiveResponse', and
29791         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29792         mechanism to associate requests with console messages by passing the
29793         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29794         or 'Console::addMessage' when relevant.
29795
29796         This patch should have no visible changes. It just installs some new
29797         piping, and adjusts the three methods mentioned above to use it.
29798         Existing tests shouldn't break.
29799
29800         * dom/Document.cpp:
29801         (WebCore::Document::addMessage):
29802         * dom/Document.h:
29803         (Document):
29804             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29805             through to Console::addMessage.
29806         * dom/ScriptExecutionContext.cpp:
29807         (WebCore::ScriptExecutionContext::addConsoleMessage):
29808         * dom/ScriptExecutionContext.h:
29809         (ScriptExecutionContext):
29810             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29811             through to the subclass' addMessage method.
29812         * inspector/ConsoleMessage.cpp:
29813         (WebCore::ConsoleMessage::ConsoleMessage):
29814             Accept an unsigned long instead of a string, and move the conversion
29815             from WebCore request identifiers to Inspector request identifiers
29816             into ConsoleMessage.
29817         * inspector/ConsoleMessage.h:
29818         (ConsoleMessage):
29819             Add 'requestIdentifier' (defaulting to 0) to the
29820             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29821             already part of the constructor that accepted a line number).
29822         * inspector/IdentifiersFactory.cpp:
29823         (WebCore::IdentifiersFactory::requestId):
29824             If the provided request identifier is 0, return an empty string.
29825             This simplifies the logic at the callsite.
29826         * inspector/InspectorConsoleAgent.cpp:
29827         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29828             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29829             through to the 'ConsoleMessage' constructor after converting it to
29830             an internal identifier via 'IdentifiersFactor::requestId'.
29831         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29832         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29833         (WebCore::InspectorConsoleAgent::didFailLoading):
29834             Use the new 'requestIdentifier' parameter on addMessageToConsole
29835             rather than replicating the behavior in each of these three methods.
29836         * inspector/InspectorConsoleAgent.h:
29837         (InspectorConsoleAgent):
29838             Add a 'requestIdentifier' parameter (defaulting to 0).
29839         * inspector/InspectorConsoleInstrumentation.h:
29840         (WebCore::InspectorInstrumentation::addMessageToConsole):
29841         * inspector/InspectorInstrumentation.cpp:
29842         (WebCore):
29843         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29844         * inspector/InspectorInstrumentation.h:
29845         (InspectorInstrumentation):
29846             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29847             through to lower levels of the stack.
29848         * page/Console.cpp:
29849         (WebCore::Console::addMessage):
29850         * page/Console.h:
29851         (Console):
29852             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29853             through to 'InspectorInstrumentation::addMessageToConsole'.
29854         * workers/WorkerContext.cpp:
29855         (WebCore::WorkerContext::addMessage):
29856         (WebCore::WorkerContext::addMessageToWorkerConsole):
29857         * workers/WorkerContext.h:
29858         (WorkerContext):
29859             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29860             through to 'InspectorInstrumentation::addMessageToConsole'.
29861
29862 2012-10-29  Anders Carlsson  <andersca@apple.com>
29863
29864         String::createCFString should return a RetainPtr
29865         https://bugs.webkit.org/show_bug.cgi?id=100419
29866
29867         Reviewed by Andreas Kling.
29868
29869         Update callers of String::createCFString.
29870
29871         * bridge/objc/objc_runtime.mm:
29872         (JSC::Bindings::callObjCFallbackObject):
29873         * html/HTMLMediaElement.cpp:
29874         (WebCore::createFileURLForApplicationCacheResource):
29875         * loader/archive/cf/LegacyWebArchive.cpp:
29876         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29877         * platform/LocalizedStrings.cpp:
29878         (WebCore::formatLocalizedString):
29879         (WebCore::contextMenuItemTagLookUpInDictionary):
29880         (WebCore::keygenKeychainItemName):
29881         (WebCore::imageTitle):
29882         * platform/RuntimeApplicationChecks.cpp:
29883         (WebCore::mainBundleIsEqualTo):
29884         * platform/cf/FileSystemCF.cpp:
29885         (WebCore::fileSystemRepresentation):
29886         (WebCore::pathAsURL):
29887         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29888         (PlatformCAAnimation::PlatformCAAnimation):
29889         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29890         (resubmitAllAnimations):
29891         (PlatformCALayer::addAnimationForKey):
29892         (PlatformCALayer::removeAnimationForKey):
29893         (PlatformCALayer::setName):
29894         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29895         (PlatformCALayerWinInternal::updateTiles):
29896         * platform/graphics/cg/ImageBufferCG.cpp:
29897         (WebCore::utiFromMIMEType):
29898         * platform/graphics/cg/ImageSourceCGMac.mm:
29899         (WebCore::MIMETypeForImageSourceType):
29900         (WebCore::preferredExtensionForImageSourceType):
29901         * platform/mac/ClipboardMac.mm:
29902         (WebCore::cocoaTypeFromHTMLClipboardType):
29903         (WebCore::utiTypeFromCocoaType):
29904         * platform/mac/SSLKeyGeneratorMac.cpp:
29905         (WebCore::signedPublicKeyAndChallengeString):
29906         * platform/network/cf/AuthenticationCF.cpp:
29907         (WebCore::createCF):
29908         * platform/network/cf/CookieJarCFNet.cpp:
29909         (WebCore::setCookies):
29910         * platform/network/cf/DNSCFNet.cpp:
29911         (WebCore::DNSResolveQueue::platformResolve):
29912         * platform/network/cf/ResourceErrorCF.cpp:
29913         (WebCore::ResourceError::cfError):
29914         * platform/network/cf/ResourceHandleCFNet.cpp:
29915         (WebCore::setDefaultMIMEType):
29916         (WebCore::willSendRequest):
29917         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29918         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29919         * platform/network/cf/ResourceRequestCFNet.cpp:
29920         (WebCore::setHeaderFields):
29921         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29922         * platform/network/cf/ResourceResponseCFNet.cpp:
29923         (WebCore::ResourceResponse::cfURLResponse):
29924         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29925         (WebCore::SocketStreamHandle::createStreams):
29926         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29927         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29928         * platform/network/mac/ResourceRequestMac.mm:
29929         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29930         * platform/network/mac/WebCoreURLResponse.mm:
29931         (WebCore::adjustMIMETypeIfNecessary):
29932         * platform/text/cf/HyphenationCF.cpp:
29933         (WebCore::::createValueForKey):
29934         * platform/text/cf/StringCF.cpp:
29935         (WTF::String::createCFString):
29936         * platform/text/cf/StringImplCF.cpp:
29937         (WTF::StringImpl::createCFString):
29938         * platform/text/mac/StringImplMac.mm:
29939         (WTF::StringImpl::operator NSString *):
29940         * platform/text/mac/TextCodecMac.cpp:
29941         (WebCore::TextCodecMac::encode):
29942         * platform/win/SearchPopupMenuWin.cpp:
29943         (WebCore::autosaveKey):
29944         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29945
29946 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29947
29948         AX: Support embedded SVG objects in AX tree
29949         https://bugs.webkit.org/show_bug.cgi?id=97571
29950
29951         Reviewed by Tim Horton.
29952
29953         This patch allows an SVG image from another resource to be hooked into the AX
29954         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29955         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29956
29957         Test: accessibility/svg-remote-element.html
29958
29959         * CMakeLists.txt:
29960         * GNUmakefile.list.am:
29961         * WebCore.gypi:
29962         * WebCore.vcproj/WebCore.vcproj:
29963         * WebCore.xcodeproj/project.pbxproj:
29964         * accessibility/AXObjectCache.cpp:
29965         (WebCore::createFromRenderer):
29966         * accessibility/AccessibilityAllInOne.cpp:
29967         * accessibility/AccessibilityObject.h:
29968         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
29969         (AccessibilityObject):
29970         * accessibility/AccessibilityRenderObject.cpp:
29971         (WebCore::AccessibilityRenderObject::detach):
29972         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
29973         (WebCore::AccessibilityRenderObject::boundingBoxRect):
29974         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
29975         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
29976         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
29977         (WebCore::AccessibilityRenderObject::isSVGImage):
29978         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
29979         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
29980         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
29981         (WebCore::AccessibilityRenderObject::addChildren):
29982         * accessibility/AccessibilityRenderObject.h:
29983         (AccessibilityRenderObject):
29984         * accessibility/AccessibilitySVGRoot.cpp: Added.
29985         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
29986         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
29987         (WebCore::AccessibilitySVGRoot::create):
29988         (WebCore::AccessibilitySVGRoot::parentObject):
29989         * accessibility/AccessibilitySVGRoot.h: Added.
29990         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
29991         (WebCore::AccessibilitySVGRoot::setParent):
29992         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
29993         (WebCore::toAccessibilitySVGRoot):
29994         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
29995         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
29996         in a special manner.
29997         (createAccessibilityRoleMap):
29998         * loader/EmptyClients.h:
29999         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
30000         the accessibility bounding rect of elements.
30001         (WebCore::EmptyChromeClient::isEmptyChromeClient):
30002         * page/ChromeClient.h:
30003         (WebCore::ChromeClient::isEmptyChromeClient):
30004         (ChromeClient):
30005         * svg/graphics/SVGImage.cpp:
30006         * svg/graphics/SVGImageChromeClient.h: Added.
30007         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
30008         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
30009         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
30010         (WebCore::SVGImageChromeClient::image):
30011         (WebCore::SVGImageChromeClient::chromeDestroyed):
30012         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
30013         (WebCore::toSVGImageChromeClient):
30014
30015 2012-10-30  Dan Carney  <dcarney@google.com>
30016
30017         add 7 bit strings capabilities to the v8 binding layer
30018         https://bugs.webkit.org/show_bug.cgi?id=91850
30019
30020         Reviewed by Adam Barth.
30021
30022         This change enables the v8 binding layer to make use of webkit's
30023         8 bit string capabilities. Using 8 bit strings leads to certain
30024         benchmark performance improvemnts as can be seen in
30025         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
30026
30027         No new tests. Test coverage already extensive.
30028
30029         * bindings/v8/V8PerIsolateData.cpp:
30030         (WebCore::V8PerIsolateData::visitExternalStrings):
30031         * bindings/v8/V8StringResource.cpp:
30032         (StringTraits):
30033         (WebCore::false):
30034         (WebCore):
30035         (WebCore::true):
30036         (WebCore::v8StringToWebCoreString):
30037         * bindings/v8/V8ValueCache.cpp:
30038         (WebCore::makeExternalString):
30039         (WebCore::WebCoreStringResourceBase::visitStrings):
30040         * bindings/v8/V8ValueCache.h:
30041         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
30042         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
30043         (WebCore::WebCoreStringResourceBase::atomicString):
30044         (WebCoreStringResourceBase):
30045         (WebCore::WebCoreStringResourceBase::memoryConsumption):
30046
30047 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
30048
30049         [AC] Fix compilation warnings when enabling Accelerated Compositing
30050         https://bugs.webkit.org/show_bug.cgi?id=100741
30051
30052         Reviewed by Kenneth Rohde Christiansen.
30053
30054         Fix a few compilation warnings when building EFL port
30055         with accelerated compositing enabled.
30056
30057         No new tests, no behavior change.
30058
30059         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30060         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
30061         (WebCore::resolveGLMethods):
30062         (WebCore::GraphicsSurface::platformCopyToGLTexture):
30063         (WebCore::GraphicsSurface::platformLock):
30064         * platform/graphics/texmap/TextureMapperGL.cpp:
30065         (WebCore::BitmapTextureGL::updateContents):
30066
30067 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
30068
30069         [Qt] Animations jump when the page is suspended
30070         https://bugs.webkit.org/show_bug.cgi?id=100673
30071
30072         Reviewed by Kenneth Rohde Christiansen.
30073
30074         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
30075
30076         We need to support the "freeze" API before this can be reliably tested.
30077         See https://bugs.webkit.org/show_bug.cgi?id=100703.
30078
30079         * platform/graphics/GraphicsLayerAnimation.cpp:
30080         (WebCore::GraphicsLayerAnimation::pause):
30081
30082 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
30083
30084         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
30085         https://bugs.webkit.org/show_bug.cgi?id=100639.
30086
30087         Reviewed by Kenneth Rohde Christiansen.
30088
30089         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
30090         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
30091         from a given WindowId, but doesn't create any new window.
30092         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
30093         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
30094
30095         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30096         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
30097
30098 2012-10-30  Emil A Eklund  <eae@chromium.org>
30099
30100         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30101         https://bugs.webkit.org/show_bug.cgi?id=100742
30102
30103         Reviewed by Levi Weintraub.
30104
30105         As we no longer pixel snap values when computing the current width for a
30106         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30107         either.
30108
30109         Test: fast/sub-pixel/float-wrap-zoom.html
30110
30111         * rendering/RenderBlockLineLayout.cpp:
30112         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30113         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30114
30115 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30116
30117         [CSS Shaders] Reject vertex shaders with custom attributes
30118         https://bugs.webkit.org/show_bug.cgi?id=98973
30119
30120         Reviewed by Dean Jackson.
30121
30122         Improved CSS Custom Filters shader validation. With this patch:
30123         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30124         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30125
30126         Most of the changes are from renaming CustomFilterOperation::MeshType to
30127         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30128         pulling in CustomFilterOperation for classes that only care about the mesh type.
30129
30130         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30131         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30132         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30133         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30134         only a vec3.
30135
30136         Tests:
30137         Add two new checks to the test file:
30138             css3/filters/custom/invalid-custom-filter-attribute-types.html
30139         Add two new shaders:
30140             css3/filters/resources/invalid-custom-attribute.vs
30141             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30142
30143         * WebCore.xcodeproj/project.pbxproj:
30144             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30145         * css/CSSComputedStyleDeclaration.cpp:
30146         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30147             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30148         * css/StyleResolver.cpp:
30149         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30150         * platform/graphics/filters/CustomFilterConstants.h:
30151             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30152             don't have to include CustomFilterOperation just to access the old
30153             CustomFilterOperation::MeshType enum.
30154         * platform/graphics/filters/CustomFilterMesh.cpp:
30155         (WebCore::CustomFilterMesh::CustomFilterMesh):
30156             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30157         * platform/graphics/filters/CustomFilterMesh.h:
30158         (WebCore::CustomFilterMesh::create): Ditto.
30159         (WebCore::CustomFilterMesh::meshType): Ditto.
30160         (CustomFilterMesh): Ditto.
30161         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30162         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30163         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30164         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30165         (CustomFilterMeshGenerator): Ditto.
30166         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30167         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30168         * platform/graphics/filters/CustomFilterOperation.cpp: 
30169         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30170         * platform/graphics/filters/CustomFilterOperation.h:
30171         (WebCore::CustomFilterOperation::create): Ditto.
30172         (WebCore::CustomFilterOperation::meshType): Ditto.
30173         (CustomFilterOperation): Ditto.
30174         * platform/graphics/filters/CustomFilterProgram.cpp:
30175         (WebCore::CustomFilterProgram::CustomFilterProgram):
30176             Add a meshType constructor parameter because the program now needs to know the meshType
30177             to properly validate.
30178         (WebCore::CustomFilterProgram::programInfo):
30179             Pass meshType to CustomFilterProgram constructor.
30180         (WebCore::CustomFilterProgram::operator==):
30181             Check the meshType in the equals operator.
30182         * platform/graphics/filters/CustomFilterProgram.h:
30183             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30184             for a programInfo object just to get the shader strings in
30185             CoordinatedGraphicsArgumentCoders.cpp.
30186         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30187         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30188             Add a meshType constructor parameter.       
30189         (WebCore::CustomFilterProgramInfo::hash):
30190             Include the meshType in the validated program hash, since the same shader code can pass
30191             or fail validation based on the meshType.
30192         (WebCore::CustomFilterProgramInfo::operator==):
30193             Check the meshType in the equals operator.
30194         * platform/graphics/filters/CustomFilterProgramInfo.h:
30195         (CustomFilterProgramInfo):
30196             Update method prototype.
30197         (WebCore::CustomFilterProgramInfo::meshType):
30198             Add meshType getter.
30199         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30200         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30201             If the author defines attribute that is is not found in the built-in attribute map,
30202             reject the shader.
30203             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30204             Also, make this previously file-static function into a method of
30205             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30206         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30207         (CustomFilterValidatedProgram):
30208             Add a meshType constructor parameter because the program now needs to know the meshType
30209             to properly validate.
30210         * platform/graphics/filters/FECustomFilter.cpp:
30211         (WebCore::FECustomFilter::FECustomFilter):
30212             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30213         (WebCore::FECustomFilter::create): Ditto.
30214         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30215         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30216         * platform/graphics/filters/FECustomFilter.h:
30217         (FECustomFilter): Ditto.
30218         * rendering/style/StyleCustomFilterProgram.h:
30219         (WebCore::StyleCustomFilterProgram::create):
30220             Add a meshType constructor parameter.
30221         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30222
30223 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30224
30225         Web Inspector: adds isOwnProperty to remote protocol
30226         https://bugs.webkit.org/show_bug.cgi?id=100664
30227
30228         Reviewed by Pavel Feldman.
30229
30230         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30231
30232         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30233         remote debugging protocol. 
30234
30235         * inspector/InjectedScriptSource.js:
30236         (.):
30237         * inspector/Inspector.json:
30238
30239 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30240
30241         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30242         https://bugs.webkit.org/show_bug.cgi?id=100680
30243
30244         When creating a temporary for swizzling the image data,
30245         the temporary will have the target size.
30246         Therefore no offset within the available image data
30247         shall be applied in this case.
30248
30249         Reviewed by Noam Rosenthal.
30250
30251         * platform/graphics/texmap/TextureMapperGL.cpp:
30252         (WebCore::BitmapTextureGL::updateContents):
30253
30254 2012-10-30  Kent Tamura  <tkent@chromium.org>
30255
30256         Remove unused code for old input[type=date] UI
30257         https://bugs.webkit.org/show_bug.cgi?id=100734
30258
30259         Reviewed by Hajime Morita.
30260
30261         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30262         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30263
30264         No new tests because of no behavior changes.
30265
30266         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30267         * html/DateInputType.h: Ditto.
30268
30269         * html/HTMLInputElement.cpp:
30270         (WebCore::HTMLInputElement::supportsPlaceholder):
30271         Remove fixed-placeholder feature.
30272         * html/HTMLInputElement.h:
30273         (HTMLInputElement): Ditto.
30274         * html/HTMLTextFormControlElement.h:
30275         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30276         * html/InputType.cpp: Remove fixed-placeholder feature.
30277         * html/InputType.h: Ditto.
30278         * html/TextFieldInputType.cpp:
30279         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30280
30281         * platform/text/PlatformLocale.h:
30282         (Locale): Remove dateFormatText.
30283         * platform/text/LocaleICU.cpp: Ditto.
30284         * platform/text/LocaleICU.h: Ditto.
30285         * platform/text/LocaleNone.cpp: Ditto.
30286         * platform/text/mac/LocaleMac.h: Ditto.
30287         * platform/text/mac/LocaleMac.mm: Ditto.
30288         * platform/text/win/LocaleWin.cpp: Ditto.
30289         * platform/text/win/LocaleWin.h: Ditto.
30290         * platform/LocalizedStrings.h:
30291         (WebCore): Remove unused functions; calendarTodayText,
30292         calendarClearText, dateFormatYearText, dateFormatMonthText,
30293         dateFormatDayInMonthText
30294
30295 2012-10-30  Kent Tamura  <tkent@chromium.org>
30296
30297         Fix crash by calendar picker or suggestion picker
30298         https://bugs.webkit.org/show_bug.cgi?id=100728
30299
30300         Reviewed by Hajime Morita.
30301
30302         Change DateTimeChooser so that it is ref-coutned.
30303
30304         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30305
30306         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30307         * page/ChromeClient.h:
30308         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30309         * loader/EmptyClients.h:
30310         (EmptyChromeClient): Follow the above change.
30311         * loader/EmptyClients.cpp:
30312         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30313
30314         * html/shadow/PickerIndicatorElement.h:
30315         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30316         * html/shadow/PickerIndicatorElement.cpp:
30317         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30318         Remove unnecessary initialization.
30319
30320 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30321
30322         Web Inspector: Timeline: promote "cpu activity" out of experiment
30323         https://bugs.webkit.org/show_bug.cgi?id=100726
30324
30325         Reviewed by Pavel Feldman.
30326
30327         1. CPU actibity bars redesigned
30328         2. Experiment setting removed
30329         3. Feature setting added
30330
30331         * English.lproj/localizedStrings.js: Updated setting label.
30332         * inspector/front-end/Settings.js: Replaced experiment with setting.
30333         * inspector/front-end/SettingsScreen.js: Added new setting.
30334         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30335         * inspector/front-end/timelinePanel.css: Ditto.
30336
30337 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30338
30339         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30340         https://bugs.webkit.org/show_bug.cgi?id=94020
30341
30342         Reviewed by Dean Jackson.
30343
30344         The default compositing mode has been changed from "normal source-over" to
30345         "normal source-atop". This applies to the default fragment shader that will
30346         kick in when there is no explicit fragment shader or mix function defined.
30347
30348         This has required to update all the existing tests; the dummy empty fragment
30349         shader has also been removed because not needed.
30350
30351         * css/CSSComputedStyleDeclaration.cpp:
30352         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30353         for the fragment shader has been added.
30354         * css/StyleResolver.cpp:
30355         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30356         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30357         the default.
30358         * platform/graphics/filters/CustomFilterProgramInfo.h:
30359         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30360         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30361         operator.
30362
30363 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30364
30365         [Qt][Mac] Unreviewed build fix.
30366         https://bugs.webkit.org/show_bug.cgi?id=100727.
30367
30368         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30369
30370         * platform/text/cf/AtomicStringCF.cpp:
30371
30372 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30373
30374         Optimize vclip for NEON in VectorMath
30375         https://bugs.webkit.org/show_bug.cgi?id=100737
30376
30377         Reviewed by Zoltan Herczeg.
30378
30379         Speed up vclip in VectorMath with NEON intrinsics.
30380
30381         * platform/audio/VectorMath.cpp:
30382         (WebCore::VectorMath::vclip):
30383
30384 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30385
30386         [CSS Shaders] Software and composited filters should have a common path
30387         https://bugs.webkit.org/show_bug.cgi?id=100532
30388
30389         Reviewed by Dean Jackson.
30390
30391         Added computeFilterOperations as a common method between the software filters
30392         and hardware composited ones. The method rejects custom filters that are not
30393         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30394         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30395         code for the custom filters common across all the ports.
30396
30397         No new tests, just refactoring existing code.
30398
30399         * rendering/RenderLayer.cpp:
30400         (WebCore::RenderLayer::computeFilterOperations):
30401         (WebCore):
30402         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30403         * rendering/RenderLayer.h:
30404         (WebCore):
30405         (RenderLayer):
30406         * rendering/RenderLayerBacking.cpp:
30407         (WebCore::RenderLayerBacking::updateFilters):
30408
30409 2012-10-30  Alexei Filippov  <alph@chromium.org>
30410
30411         Web Inspector: Implement native memory snapshot grid view
30412         https://bugs.webkit.org/show_bug.cgi?id=100656
30413
30414         Native memory snapshots are now shown as an expandable tree form
30415         using the grid control.
30416
30417         Reviewed by Yury Semikhatsky.
30418
30419         * inspector/front-end/NativeMemorySnapshotView.js:
30420         (WebInspector.NativeMemorySnapshotView):
30421         (WebInspector.NativeSnapshotDataGrid):
30422         (WebInspector.NativeSnapshotNode):
30423         (WebInspector.NativeSnapshotNode.prototype.createCell):
30424         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30425         (WebInspector.NativeSnapshotNode.prototype._populate):
30426         (WebInspector.MemoryBlockViewProperties._initialize):
30427         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30428         * inspector/front-end/dataGrid.css:
30429         (.data-grid td):
30430         * inspector/front-end/nativeMemoryProfiler.css:
30431         (.memory-bar-chart-bar):
30432         (.native-snapshot-view):
30433         (.native-snapshot-view.visible):
30434         (.native-snapshot-view .data-grid):
30435         (.native-snapshot-view .data-grid table):
30436         (.native-snapshot-view .data-grid div.size-text):
30437         (.native-snapshot-view .data-grid div.size-bar):
30438         (.native-snapshot-view .data-grid div.percent-text):
30439
30440 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30441
30442         3d rotation with [0, 0, 0] direction vector should not be applied
30443         https://bugs.webkit.org/show_bug.cgi?id=100733
30444
30445         Reviewed by Levi Weintraub.
30446
30447         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30448         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30449         but webkit applies it with [1, 0, 0] direction vector.
30450
30451         Test: transforms/3d/general/3dtransform-values.html
30452
30453         * platform/graphics/transforms/TransformationMatrix.cpp:
30454         (WebCore::TransformationMatrix::rotate3d):
30455
30456 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30457
30458         Memory instrumentation: report actual object address for CachedResourceClients
30459         https://bugs.webkit.org/show_bug.cgi?id=100659
30460
30461         Reviewed by Alexander Pavlov.
30462
30463         Skipped pointers to objects that are not allocated on the heap directly.
30464
30465         To test this we need to compare addresses of objects traversed by the memory
30466         insrumentation with those allocated by the memory allocator. The latter set
30467         should include the former one.
30468
30469         * css/StyleResolver.cpp:
30470         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30471         objects and should not be reported separately.
30472         * loader/cache/CachedResource.cpp:
30473         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30474         the interface may have address which differ from CachedResourceClient*. The clients
30475         should be reachable from their instrumented owners where we know exact type of the
30476         clients and hence can figure correct address.
30477
30478 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30479
30480         [Refatoring] Remove ElementShadow::insertionPointFor
30481         https://bugs.webkit.org/show_bug.cgi?id=100625
30482
30483         Reviewed by Hajime Morita.
30484
30485         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30486         ComposedShadowTreeWalker. So we can remove it.
30487
30488         No new tests, simple refactoring.
30489
30490         * dom/ComposedShadowTreeWalker.cpp:
30491         (WebCore::resolveReprojection):
30492         (WebCore::AncestorChainWalker::parent):
30493         * dom/ElementShadow.cpp:
30494         * dom/ElementShadow.h:
30495         (ElementShadow):
30496         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30497         We should remove it.
30498
30499 2012-10-29  Andy Estes  <aestes@apple.com>
30500
30501         Fix a typo that caused SVG external resources to be blocked on
30502         platforms other than Chromium.
30503
30504         * loader/cache/CachedResourceLoader.cpp:
30505         (WebCore::CachedResourceLoader::canRequest):
30506
30507 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30508
30509         NSLocale leaks in LocaleMac
30510         https://bugs.webkit.org/show_bug.cgi?id=97628
30511
30512         Reviewed by Kent Tamura.
30513
30514         We need to adopt the NSLocale object so it doesn't leak and
30515         determineLocale() should return a NSLocale without additional retain.
30516
30517         No new tests.
30518
30519         * platform/text/mac/LocaleMac.mm:
30520         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30521         (WebCore::Locale::create):
30522         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30523         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30524
30525 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30526
30527         [BlackBerry] Disable redirect to data scheme for potential fishing.
30528         https://bugs.webkit.org/show_bug.cgi?id=100713
30529
30530         Reviewed by George Staikos.
30531
30532         We will disable redirect to data scheme to avoid potential security concern, 
30533         described in klevjers.com/papers/phishing.pdf.
30534
30535
30536         * platform/network/blackberry/NetworkJob.cpp:
30537         (WebCore::NetworkJob::handleRedirect):
30538
30539 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30540
30541         Unreviewed, rolling out r132845.
30542         http://trac.webkit.org/changeset/132845
30543         https://bugs.webkit.org/show_bug.cgi?id=99975
30544
30545         Broke chromium builds, linker errors from
30546         IDBBindingUtilitiesTest
30547
30548         * Modules/indexeddb/IDBRequest.cpp:
30549         (WebCore::IDBRequest::IDBRequest):
30550         (WebCore::IDBRequest::onSuccess):
30551         (WebCore::IDBRequest::dispatchEvent):
30552         * Modules/indexeddb/IDBRequest.h:
30553         (IDBRequest):
30554         * bindings/v8/IDBBindingUtilities.cpp:
30555         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30556         (WebCore):
30557         (WebCore::deserializeIDBValue):
30558         (WebCore::injectIDBKeyIntoScriptValue):
30559         (WebCore::idbKeyToScriptValue):
30560         * bindings/v8/V8PerIsolateData.cpp:
30561         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30562         (WebCore):
30563         * bindings/v8/V8PerIsolateData.h:
30564         (V8PerIsolateData):
30565
30566 2012-10-29  Anders Carlsson  <andersca@apple.com>
30567
30568         Fix Windows build.
30569
30570         * platform/network/cf/ResourceRequestCFNet.cpp:
30571         (WebCore::setHeaderFields):
30572
30573 2012-10-28  Mark Rowe  <mrowe@apple.com>
30574
30575         Simplify Xcode configuration settings that used to vary between OS versions.
30576
30577         Reviewed by Dan Bernstein.
30578
30579         * Configurations/Base.xcconfig:
30580         * Configurations/DebugRelease.xcconfig:
30581         * Configurations/WebCore.xcconfig:
30582
30583 2012-10-28  Mark Rowe  <mrowe@apple.com>
30584
30585         Remove references to unsupported OS and Xcode versions.
30586
30587         Reviewed by Anders Carlsson.
30588
30589         * Configurations/Base.xcconfig:
30590         * Configurations/CompilerVersion.xcconfig: Removed.
30591         * Configurations/DebugRelease.xcconfig:
30592         * Configurations/Version.xcconfig:
30593         * Configurations/WebCore.xcconfig:
30594         * DerivedSources.make:
30595         * WebCore.xcodeproj/project.pbxproj:
30596
30597 2012-10-29  Anders Carlsson  <andersca@apple.com>
30598
30599         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30600         https://bugs.webkit.org/show_bug.cgi?id=100701
30601
30602         Reviewed by Dan Bernstein.
30603
30604         * WebCore.exp.in:
30605         Export AtomicString::add(CFStringRef).
30606
30607         * Target.pri:
30608         * WebCore.gypi:
30609         * WebCore.vcproj/WebCore.vcproj:
30610         * WebCore.xcodeproj/project.pbxproj:
30611         Add AtomicStringCF.cpp 
30612
30613         * platform/text/cf/AtomicStringCF.cpp: Added.
30614         (WTF::AtomicString::add):
30615         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30616         from the string. Second, try to get a Unicode pointer from the string.
30617         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30618
30619         * platform/text/cf/HyphenationCF.cpp:
30620         (WebCore::::createValueForKey):
30621         Update for AtomicString::createCFString being removed.
30622
30623 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30624
30625         feImage should not be allowed to self reference
30626         https://bugs.webkit.org/show_bug.cgi?id=94652
30627
30628         Reviewed by Eric Seidel.
30629
30630         Add cycle detection for SVG filter application, and also fix a problem
30631         with graphics context restore when filters are applied. This also
30632         converts the flags in FilterData to a state tracking system, as the
30633         number of flags was getting messy and only one flag is valid at any given time.
30634
30635         Test: svg/filters/feImage-self-and-other-referencing.html
30636
30637         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30638         state management and enable cycle detection.
30639         (WebCore):
30640         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30641         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30642         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30643         for the various states.
30644         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30645         * rendering/svg/RenderSVGResourceFilter.h:
30646         (WebCore::FilterData::FilterData):
30647         (FilterData): Convert to a state tracking system.
30648         * rendering/svg/RenderSVGRoot.cpp:
30649         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30650         SVGRenderingContext so that it applies the filter and reverts the
30651         context before the calling method restores the context.
30652
30653 2012-10-29  Dan Bernstein  <mitz@apple.com>
30654
30655         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30656         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30657
30658         Reviewed by Anders Carlsson.
30659
30660         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30661
30662         * platform/graphics/cg/GraphicsContextCG.cpp:
30663         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30664         than CGRectInfinite when the context is accelerated and has a transform that is not just
30665         a translation or a scale.
30666
30667 2012-10-29  Rob Buis  <rbuis@rim.com>
30668
30669         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30670         https://bugs.webkit.org/show_bug.cgi?id=100614
30671
30672         Reviewed by Yong Li.
30673         Internally reviewed by Lyon Chen.
30674
30675         Use a standard Singleton pattern here, this makes sure we create lazily.
30676
30677         * platform/blackberry/AuthenticationChallengeManager.cpp:
30678         (WebCore):
30679         * platform/blackberry/AuthenticationChallengeManager.h:
30680         (AuthenticationChallengeManager):
30681
30682 2012-10-29  Adam Barth  <abarth@webkit.org>
30683
30684         Block SVG external references pending a security review
30685         https://bugs.webkit.org/show_bug.cgi?id=100635
30686
30687         Reviewed by Eric Seidel.
30688
30689         We need to do a security review of loading external SVG references
30690         before we're sure that it is safe.
30691
30692         * css/StyleResolver.cpp:
30693         (WebCore::StyleResolver::createFilterOperations):
30694         * loader/cache/CachedResourceLoader.cpp:
30695         (WebCore::CachedResourceLoader::canRequest):
30696
30697 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30698
30699         IndexedDB: Crash on checking version of corrupt backing store
30700         https://bugs.webkit.org/show_bug.cgi?id=100692
30701
30702         Reviewed by Tony Chang.
30703
30704         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30705         the subsequent schema version check dereferences a null pointer. Fix to only
30706         do the schema check if the database opened.
30707
30708         Chromium tests will be included with crrev.com/11196029
30709
30710         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30711         (WebCore::IDBLevelDBBackingStore::open):
30712
30713 2012-10-29  Philip Rogers  <pdr@google.com>
30714
30715         Let SVGElements have pending resources.
30716         https://bugs.webkit.org/show_bug.cgi?id=99694
30717
30718         Reviewed by Eric Seidel.
30719
30720         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30721         if an SVG element references an id that is not yet in the document (or has been removed),
30722         the SVG element will be 'pending' an id. When styled elements are inserted into
30723         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30724         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30725         this infrastructure, and that is not changed with this patch.
30726
30727         Previously, only SVGStyledElements could have pending resources. Some examples of where
30728         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30729         but which can have pending references (they can reference styled elements and
30730         paths, respectively). This patch changes the pending resource handling to allow
30731         any SVGElement to have pending resources.
30732
30733         This patch is only a refactoring of code in preparation for WK99694 and does not
30734         affect existing functionality or tests.
30735
30736         * svg/SVGDocumentExtensions.cpp:
30737         (WebCore::SVGDocumentExtensions::addPendingResource):
30738         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30739         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30740         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30741         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30742         * svg/SVGDocumentExtensions.h:
30743         (WebCore):
30744         (SVGDocumentExtensions):
30745         * svg/SVGElement.cpp:
30746         (WebCore::SVGElement::~SVGElement):
30747         (WebCore::SVGElement::removedFrom):
30748         (WebCore::SVGElement::hasPendingResources):
30749         (WebCore):
30750         (WebCore::SVGElement::setHasPendingResources):
30751         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30752         * svg/SVGElement.h:
30753         (SVGElement):
30754         (WebCore::SVGElement::buildPendingResource):
30755         * svg/SVGStyledElement.cpp:
30756         (WebCore):
30757         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30758         (WebCore::SVGStyledElement::removedFrom):
30759         * svg/SVGStyledElement.h:
30760         (SVGStyledElement):
30761         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30762
30763 2012-10-29  Dan Carney  <dcarney@google.com>
30764
30765         Remove ensureAuxiliaryContext
30766         https://bugs.webkit.org/show_bug.cgi?id=99975
30767
30768         Reviewed by Adam Barth.
30769
30770         Removed auxilliaryContext as use if it is problematic in IDB.
30771
30772         No new tests. No change in functionality.
30773
30774         * Modules/indexeddb/IDBCursor.cpp:
30775         (WebCore::IDBCursor::update):
30776         (WebCore::IDBCursor::setValueReady):
30777         * Modules/indexeddb/IDBCursor.h:
30778         (IDBCursor):
30779         * Modules/indexeddb/IDBObjectStore.cpp:
30780         (WebCore::generateIndexKeysForValue):
30781         (WebCore::IDBObjectStore::put):
30782         (WebCore):
30783         * Modules/indexeddb/IDBRequest.cpp:
30784         (WebCore::IDBRequest::onSuccess):
30785         (WebCore::IDBRequest::dispatchEvent):
30786         * bindings/v8/IDBBindingUtilities.cpp:
30787         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30788         (WebCore::deserializeIDBValue):
30789         (WebCore::injectIDBKeyIntoScriptValue):
30790         * bindings/v8/IDBBindingUtilities.h:
30791         (WebCore):
30792         * bindings/v8/V8Binding.cpp:
30793         (WebCore::toV8Context):
30794         (WebCore):
30795         * bindings/v8/V8Binding.h:
30796         (WebCore):
30797         * bindings/v8/V8PerIsolateData.cpp:
30798         (WebCore):
30799         * bindings/v8/V8PerIsolateData.h:
30800
30801 2012-10-29  Alpha Lam  <hclam@chromium.org>
30802
30803         [skia] Handle mask box image.
30804         https://bugs.webkit.org/show_bug.cgi?id=100570
30805
30806         Reviewed by James Robinson.
30807
30808         When drawing an image with source rectangle it should intersect with image rectangle.
30809         This should be the case for drawing single image and tiling an image.
30810
30811         Test: fast/images/mask-box-image-crash.html
30812
30813         * platform/graphics/skia/ImageSkia.cpp:
30814         (WebCore::Image::drawPattern):
30815         (WebCore::BitmapImage::draw):
30816         (WebCore::BitmapImageSingleFrameSkia::draw):
30817
30818 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30819
30820         Support captions when PLUGIN_PROXY_FOR_VIDEO
30821         https://bugs.webkit.org/show_bug.cgi?id=100690
30822
30823         Reviewed by Simon Fraser.
30824
30825         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30826         platform media engine. Update this code path so the shadow DOM elements used to display
30827         text tracks are created and configured correctly.
30828
30829         * html/HTMLMediaElement.cpp:
30830         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30831
30832         * rendering/RenderEmbeddedObject.cpp:
30833         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30834             position of the embedded element changes.
30835         * rendering/RenderEmbeddedObject.h:
30836
30837 2012-10-29  Justin Novosad  <junov@google.com>
30838
30839         [Chromium] flickering observed when copying 2D canvas to webGL texture
30840         https://bugs.webkit.org/show_bug.cgi?id=100691
30841
30842         Reviewed by Stephen White.
30843
30844         Added a flush to the webgl context after texture upload from an image
30845         buffer to ensure proper graphics context synchronization with respect
30846         to subsequent changes to the source image.
30847
30848         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30849
30850         * platform/graphics/skia/ImageBufferSkia.cpp:
30851         (WebCore::ImageBuffer::copyToPlatformTexture):
30852
30853 2012-10-29  Glenn Adams  <glenn@skynav.com>
30854
30855         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30856         https://bugs.webkit.org/show_bug.cgi?id=100657
30857
30858         Reviewed by Simon Fraser.
30859
30860         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30861         media list is empty.
30862
30863         Test: cssom/cssimportrule-media.html
30864
30865         * css/CSSImportRule.cpp:
30866         (WebCore::CSSImportRule::cssText):
30867         Don't append extra whitespace if mediaText is empty.
30868
30869 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30870
30871         webview not redrawn as needed when accelerated compositing is enabled.
30872         https://bugs.webkit.org/show_bug.cgi?id=99109
30873
30874         Reviewed by Martin Robinson.
30875
30876         GL shared display is not in the gtk loop and therefore, its events are
30877         not captured by gtk. So, we use gdk default instead.
30878
30879         No new tests, covered by existing tests.
30880
30881         * platform/gtk/RedirectedXCompositeWindow.cpp:
30882         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30883         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30884         (WebCore::RedirectedXCompositeWindow::resize):
30885
30886 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30887
30888         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30889         https://bugs.webkit.org/show_bug.cgi?id=100685
30890
30891         Reviewed by Vsevolod Vlasov.
30892
30893         * inspector/front-end/DefaultTextEditor.js:
30894         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30895
30896 2012-10-29  Enrica Casucci  <enrica@apple.com>
30897
30898         Add ENABLE_USERSELECT_ALL feature flag.
30899         https://bugs.webkit.org/show_bug.cgi?id=100559
30900
30901         Reviewed by Eric Seidel.
30902
30903         * Configurations/FeatureDefines.xcconfig:
30904
30905 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30906
30907         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30908         https://bugs.webkit.org/show_bug.cgi?id=100548
30909
30910         Reviewed by Dean Jackson.
30911
30912         Moved all the CustomFilterParameterList related methods to their own file.
30913         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30914         so that we can add a different operator== and a blend method to it.
30915
30916         No new tests, just refactoring existing code.
30917
30918         * CMakeLists.txt:
30919         * GNUmakefile.list.am:
30920         * Target.pri:
30921         * WebCore.gypi:
30922         * WebCore.xcodeproj/project.pbxproj:
30923         * css/StyleResolver.h:
30924         * platform/graphics/filters/CustomFilterOperation.cpp:
30925         (WebCore::CustomFilterOperation::CustomFilterOperation):
30926         (WebCore::CustomFilterOperation::blend):
30927         * platform/graphics/filters/CustomFilterOperation.h:
30928         (WebCore):
30929         (WebCore::CustomFilterOperation::operator==):
30930         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30931         (WebCore):
30932         (WebCore::CustomFilterParameterList::operator==):
30933         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30934         (WebCore::CustomFilterParameterList::blend):
30935         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30936         (WebCore):
30937         (CustomFilterParameterList):
30938
30939 2012-10-29  Brady Eidson  <beidson@apple.com>
30940
30941         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30942
30943         Not reviewed.
30944
30945         * loader/ResourceLoader.h:
30946         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30947
30948 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30949
30950         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30951         https://bugs.webkit.org/show_bug.cgi?id=100115
30952
30953         Reviewed by Noam Rosenthal.
30954
30955         * platform/graphics/qt/FontQt.cpp:
30956         (WebCore::Font::drawGlyphs):
30957
30958 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30959
30960         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
30961         https://bugs.webkit.org/show_bug.cgi?id=100623
30962
30963         Reviewed by Noam Rosenthal.
30964
30965         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
30966         way. Other GraphicsLayers choose a timing function in the similar way to
30967         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
30968         the following steps.
30969         1. Try to query the timing function of the current keyframe animation value.
30970         2. If the timing function of #1 is null, try to query the timing function of Animation.
30971         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
30972
30973         This patch makes GraphicsLayerAnimation choose a timing function in the same way
30974         to other implementations.
30975
30976         Covered by existing animations tests.
30977
30978         * platform/graphics/GraphicsLayerAnimation.cpp:
30979         (WebCore::timingFunctionForAnimationValue):
30980         (WebCore::GraphicsLayerAnimation::apply):
30981
30982 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30983
30984         Web Inspector: Toolbar overflow appears outside window
30985         https://bugs.webkit.org/show_bug.cgi?id=100663
30986
30987         Reviewed by Pavel Feldman.
30988
30989         Since the search bar was removed from the toolbar, the overflow menu appears too far
30990         to the right, and is unreadable. Fixed this by aligning it relative to the right side
30991         of the window, rather than the left.
30992
30993         * inspector/front-end/Toolbar.js:
30994         (WebInspector.ToolbarDropdown.prototype.show):
30995         * inspector/front-end/inspector.css:
30996         (#toolbar-dropdown .toolbar-label):
30997
30998 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
30999
31000         [CSS Shaders] Implement CustomFilterArrayParameter::blend
31001         https://bugs.webkit.org/show_bug.cgi?id=96437
31002
31003         Reviewed by Dean Jackson.
31004
31005         This patch adds the missing code to blend values within
31006         an array() when using Custom Filters.
31007
31008         Test: css3/filters/custom/custom-filter-array-blending.html
31009
31010         * platform/graphics/filters/CustomFilterArrayParameter.h:
31011         (WebCore::CustomFilterArrayParameter::blend):
31012
31013 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31014
31015         Web Inspector: Drag and drop a URL in inspector is not working as expected
31016         https://bugs.webkit.org/show_bug.cgi?id=100527
31017
31018         Reviewed by Yury Semikhatsky.
31019
31020         Inhibit custom dragstart handling when the active element is A.
31021
31022         * inspector/front-end/ElementsTreeOutline.js:
31023         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
31024
31025 2012-10-29  Mike West  <mkwst@chromium.org>
31026
31027         Web Inspector: Error/warning count is one pixel off.
31028         https://bugs.webkit.org/show_bug.cgi?id=100660
31029
31030         Reviewed by Pavel Feldman.
31031
31032         The error/warning count div had a top padding of 6. That was one pixel
31033         too many.
31034
31035         * inspector/front-end/inspector.css:
31036         (#error-warning-count):
31037
31038 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
31039
31040         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
31041         https://bugs.webkit.org/show_bug.cgi?id=100459
31042
31043         Reviewed by Hajime Morita.
31044
31045         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
31046         use a utility function which checks both at once.
31047
31048         We rewrite some lines with such function.
31049
31050         No new tests, simple refactoring.
31051
31052         * dom/ComposedShadowTreeWalker.cpp:
31053         (WebCore::ComposedShadowTreeWalker::traverseNode):
31054         * html/shadow/ContentDistributor.cpp:
31055         (WebCore::ContentDistributor::populate):
31056         (WebCore::ContentDistributor::distribute):
31057         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31058         * html/shadow/InsertionPoint.h:
31059         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
31060         we would like to make it similar to the other functions.
31061         (WebCore::toInsertionPoint):
31062         (WebCore::isLowerEncapsulationBoundary):
31063
31064 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31065
31066         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
31067         https://bugs.webkit.org/show_bug.cgi?id=100373
31068
31069         Reviewed by Pavel Feldman.
31070
31071         Fix the background image for the selected toolbar item to be vertically centered.
31072         Make close button and toolbar overflow button vertically centered for any toolbar
31073         height.
31074
31075         * inspector/front-end/Toolbar.js: Remove unused variable.
31076         * inspector/front-end/inspector.css:
31077         (.toolbar-item.toggleable):
31078         (body.compact .toolbar-item.toggleable):
31079         (.toolbar-item.toggleable.toggled-on):
31080         (body.compact .toolbar-label):
31081         (#toolbar-dropdown-arrow):
31082         (#close-button-left, #close-button-right):
31083         (.toolbar-item.close-left):
31084         * inspector/front-end/inspector.html:
31085
31086 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31087
31088         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
31089         https://bugs.webkit.org/show_bug.cgi?id=100500
31090
31091         Reviewed by Yury Semikhatsky.
31092
31093         Fix: do not shorten bars by nested records of the same category.
31094
31095         * inspector/front-end/TimelineOverviewPane.js: Check added.
31096
31097 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31098
31099         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31100         https://bugs.webkit.org/show_bug.cgi?id=100530
31101
31102         Reviewed by Yury Semikhatsky.
31103
31104         Motivation: cpu-monitoring feature looks like a glitch,
31105         when it is not supported by browser.
31106
31107         * inspector/Inspector.json: Added capability getter to protocol.
31108         * inspector/InspectorClient.h: Added capability getter.
31109         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31110         * inspector/InspectorTimelineAgent.h: Added capability getter.
31111         * inspector/front-end/Settings.js: Added capability field.
31112         * inspector/front-end/TimelinePanel.js: Check capability.
31113         * inspector/front-end/inspector.js: Forward capability value.
31114
31115 2012-10-29  Antti Koivisto  <antti@apple.com>
31116
31117         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31118         https://bugs.webkit.org/show_bug.cgi?id=100655
31119
31120         Reviewed by Andreas Kling.
31121
31122         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31123
31124         * css/StyleResolver.cpp:
31125         (WebCore::StyleResolver::StyleResolver):
31126         
31127             Use standard create() pattern.
31128
31129         (WebCore):
31130         * css/StyleResolver.h:
31131         (StyleResolver):
31132         * dom/Document.cpp:
31133         (WebCore::Document::Document):
31134         * dom/DocumentStyleSheetCollection.cpp:
31135         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31136         
31137             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31138             iterate to ancestors anymore.
31139
31140         (WebCore):
31141         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31142         * dom/DocumentStyleSheetCollection.h:
31143         (WebCore::DocumentStyleSheetCollection::create):
31144         (DocumentStyleSheetCollection):
31145         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31146         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31147         
31148             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31149
31150         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31151
31152 2012-10-29  Andreas Kling  <kling@webkit.org>
31153
31154         Don't expose implementation details of StylePropertySet storage.
31155         <http://webkit.org/b/100644>
31156
31157         Reviewed by Antti Koivisto.
31158
31159         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31160         This will allow us to refactor the internal storage of StylePropertySet without
31161         breaking its API.
31162
31163         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31164
31165         * css/CSSComputedStyleDeclaration.cpp:
31166         * css/CSSParser.cpp:
31167         * css/CSSParser.h:
31168         * css/SVGCSSParser.cpp:
31169         * css/StylePropertySet.cpp:
31170         (WebCore::StylePropertySet::asText):
31171         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31172         (WebCore::StylePropertySet::findPropertyWithId):
31173         (WebCore::StylePropertySet::reportMemoryUsage):
31174         * css/StylePropertySet.h:
31175         (StylePropertySet):
31176         (PropertyReference):
31177         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31178         (WebCore::StylePropertySet::PropertyReference::id):
31179         (WebCore::StylePropertySet::PropertyReference::isImportant):
31180         (WebCore::StylePropertySet::PropertyReference::isInherited):
31181         (WebCore::StylePropertySet::PropertyReference::cssName):
31182         (WebCore::StylePropertySet::PropertyReference::cssText):
31183         (WebCore::StylePropertySet::PropertyReference::value):
31184         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31185         (WebCore::StylePropertySet::propertyAt):
31186         (WebCore::StylePropertySet::propertyAtInternal):
31187         (WebCore):
31188         * css/StyleResolver.cpp:
31189         (WebCore::attributeStylesEqual):
31190         (WebCore::StyleResolver::applyProperties):
31191         (WebCore::StyleResolver::resolveVariables):
31192         * editing/ApplyStyleCommand.cpp:
31193         * editing/EditingStyle.cpp:
31194         (WebCore::EditingStyle::mergeStyle):
31195         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31196         * editing/Editor.cpp:
31197         * editing/markup.cpp:
31198         * page/Frame.cpp:
31199         * svg/SVGFontFaceElement.cpp:
31200
31201 2012-10-29  Kent Tamura  <tkent@chromium.org>
31202
31203         Move LocaleWin.{cpp,h} to platform/text/win/
31204         https://bugs.webkit.org/show_bug.cgi?id=100641
31205
31206         Reviewed by Kentaro Hara.
31207
31208         We have platform/text/win/ directory. Windows-specific files should be
31209         in it.
31210         Note that these files are used only in Chromium-win for now.
31211
31212         No new tests. This doesn't change any behavior.
31213
31214         * WebCore.gyp/WebCore.gyp: Fix path names.
31215         * WebCore.gypi: Ditto.
31216         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31217         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31218
31219 2012-10-29  Kent Tamura  <tkent@chromium.org>
31220
31221         Rename Localizer to Locale
31222         https://bugs.webkit.org/show_bug.cgi?id=100634
31223
31224         Reviewed by Kentaro Hara.
31225
31226         - Rename Localizer class to Locale
31227         - Rename localizer with locale in variable names
31228         - Rename localizer with locale in function names
31229
31230         No new tests. This doesn't make any behavior changes.
31231
31232         * dom/Document.h:
31233         (WebCore): Declare Locale instead of Localizer.
31234         (Document):
31235         - Rename getCachedLocalizer to getCachedLocale.
31236         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31237         - Rename m_localizerCache to m_localeCache.
31238         * dom/Document.cpp:
31239         (WebCore::Document::getCachedLocale): Follow renamings.
31240         * dom/Element.h:
31241         (WebCore): Declare Locale instead of Localizer.
31242         (Element): Rename localizer() to locale().
31243         * dom/Element.cpp:
31244         (WebCore::Element::locale): Follow renamings.
31245
31246         * html/BaseDateAndTimeInputType.cpp:
31247         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31248         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31249         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31250         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31251         * html/DateInputType.cpp:
31252         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31253         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31254         * html/DateTimeInputType.cpp:
31255         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31256         * html/DateTimeLocalInputType.cpp:
31257         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31258         * html/MonthInputType.cpp:
31259         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31260         * html/NumberInputType.cpp:
31261         (WebCore::NumberInputType::localizeValue): Ditto.
31262         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31263         * html/TimeInputType.cpp:
31264         (WebCore::TimeInputType::localizeValue): Ditto.
31265         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31266
31267         * html/shadow/DateTimeEditElement.h:
31268         (WebCore): Declare Locale instead of Localizer.
31269         (LayoutParameters): Rename localizer data member to locale.
31270         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31271         * html/shadow/DateTimeEditElement.cpp:
31272         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31273         * html/shadow/DateTimeNumericFieldElement.h:
31274         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31275         * html/shadow/DateTimeNumericFieldElement.cpp:
31276         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31277         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31278         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31279         * page/PagePopupClient.h:
31280         (WebCore): Declare Locale instead of Localizer.
31281         (PagePopupClient): Rename localizer member function to locale.
31282         * page/PagePopupController.cpp:
31283         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31284
31285         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31286         (DateTimeStringBuilder):
31287         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31288         (WebCore::Locale::~Locale):
31289         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31290         (WebCore::Locale::convertToLocalizedNumber):
31291         (WebCore::Locale::detectSignAndGetDigitRange):
31292         (WebCore::Locale::matchedDecimalSymbolIndex):
31293         (WebCore::Locale::convertFromLocalizedNumber):
31294         (WebCore::Locale::localizedDecimalSeparator):
31295         (WebCore::Locale::dateTimeFormatWithSeconds):
31296         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31297         (WebCore::Locale::formatDateTime):
31298         * platform/text/PlatformLocale.h: Update the ifndef macro.
31299         (Locale): Renamed from Localizer. Also, renamed the followings:
31300          - initializeLocalizerData -> initializeLocaleData
31301          - setLocalizerData -> setLocaleData
31302          - m_hasLocalizerData -> m_hasLocaleData
31303         (WebCore::Locale::Locale):
31304         (WebCore::Locale::createDefault):
31305         * platform/text/LocaleICU.cpp: Follow renamings.
31306         * platform/text/LocaleICU.h: Ditto.
31307         * platform/text/LocaleNone.cpp: Ditto.
31308         * platform/text/LocaleWin.cpp: Ditto.
31309         * platform/text/LocaleWin.h: Ditto.
31310         * platform/text/mac/LocaleMac.h: Ditto.
31311         * platform/text/mac/LocaleMac.mm: Ditto.
31312
31313 2012-10-29  Mike West  <mkwst@chromium.org>
31314
31315         Web Inspector: Error messages lines in console are 1px taller than regular messages
31316         https://bugs.webkit.org/show_bug.cgi?id=100521
31317
31318         Reviewed by Pavel Feldman.
31319
31320         The inspector is adding a 1px bottom border to list elements inside
31321         a disclosure list. This is unnecessary in the current layout; it's
31322         causing console messages with stack traces to be one pixel taller than
31323         other console messages, which this patch fixes.
31324
31325         As a drive-by, this patch also adjusts the disclosure triangle's
31326         position to match.
31327
31328         * inspector/front-end/inspector.css:
31329         (.outline-disclosure li):
31330         (.outline-disclosure li.parent::before):
31331
31332 2012-10-29  Mike West  <mkwst@chromium.org>
31333
31334         Web Inspector: The bubble for repeated errors is misplaced.
31335         https://bugs.webkit.org/show_bug.cgi?id=100525
31336
31337         Reviewed by Pavel Feldman.
31338
31339         The repeated-message bubble is displayed as an inline-block element,
31340         which works well as long as no stack trace is present. If present, the
31341         message is wrapped in an 'ol' element displayed as a block, which pushes
31342         itself down to the next line.
31343
31344         To avoid that issue, this patch switches the wrapper element to flexbox,
31345         glorious flexbox.
31346
31347         * inspector/front-end/inspector.css:
31348         (.console-message .bubble):
31349         (.repeated-message .outline-disclosure):
31350         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31351
31352 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31353
31354         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31355         https://bugs.webkit.org/show_bug.cgi?id=100119
31356
31357         Reviewed by Vsevolod Vlasov.
31358
31359         Test: inspector/styles/inactive-properties.html
31360
31361         * inspector/front-end/StylesSidebarPane.js:
31362         (WebInspector.StylesSidebarPane.createExclamationMark):
31363         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31364         * inspector/front-end/elementsPanel.css:
31365         (.styles-section.computed-style .properties li.not-parsed-ok):
31366         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31367         (.styles-section .properties .not-parsed-ok):
31368
31369 2012-10-29  Eric Seidel  <eric@webkit.org>
31370
31371         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31372         https://bugs.webkit.org/show_bug.cgi?id=100630
31373
31374         Reviewed by Ojan Vafai.
31375
31376         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31377         on my retina MBP (down from 14.3s before this change).
31378         It's very expensive to walk the DOM each time we call RenderTable::colElement
31379         so this caches the RenderTableCol* in a vector for easier walking.
31380         We invalidate the cache any time a RenderTableCol is added or removed from the
31381         rendering sub-tree to avoid holding a bad pointer.
31382
31383         * rendering/RenderTable.cpp:
31384         (WebCore::RenderTable::RenderTable):
31385         (WebCore::RenderTable::invalidateCachedColumns):
31386         (WebCore):
31387         (WebCore::RenderTable::addColumn):
31388         (WebCore::RenderTable::removeColumn):
31389         (WebCore::RenderTable::updateColumnCache):
31390         (WebCore::RenderTable::slowColElement):
31391         * rendering/RenderTable.h:
31392         (RenderTable):
31393         * rendering/RenderTableCol.cpp:
31394         (WebCore::RenderTableCol::insertedIntoTree):
31395         (WebCore):
31396         (WebCore::RenderTableCol::willBeRemovedFromTree):
31397         * rendering/RenderTableCol.h:
31398
31399 2012-10-28  Kent Tamura  <tkent@chromium.org>
31400
31401         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31402         https://bugs.webkit.org/show_bug.cgi?id=100627
31403
31404         Reviewed by Yuta Kitamura.
31405
31406         We'd like to rename Localizer class to Locale class. However we use
31407         PlatformLocale.cpp and PlatformLocale.h as their file names because
31408         <locale.h> exists in the C standard.  In this patch, we rename only file
31409         names. We're going to rename the class name later.
31410
31411         No new tests. This doesn't make any behavior change.
31412
31413         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31414         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31415         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31416
31417         * CMakeLists.txt: Follow the file name renaming.
31418         * GNUmakefile.list.am: Ditto.
31419         * Target.pri: Ditto.
31420         * WebCore.gypi: Ditto.
31421         * WebCore.vcproj/WebCore.vcproj: Ditto.
31422         * WebCore.xcodeproj/project.pbxproj: Ditto.
31423         * dom/Document.cpp: Ditto.
31424         * html/BaseDateAndTimeInputType.cpp: Ditto.
31425         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31426         * html/DateInputType.cpp: Ditto.
31427         * html/DateTimeInputType.cpp: Ditto.
31428         * html/DateTimeLocalInputType.cpp: Ditto.
31429         * html/MonthInputType.cpp: Ditto.
31430         * html/NumberInputType.cpp: Ditto.
31431         * html/TimeInputType.cpp: Ditto.
31432         * html/shadow/DateTimeEditElement.cpp: Ditto.
31433         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31434         * page/PagePopupController.cpp: Ditto.
31435         * platform/text/LocaleICU.h: Ditto.
31436         * platform/text/LocaleNone.cpp: Ditto.
31437         * platform/text/LocaleWin.h: Ditto.
31438         * platform/text/mac/LocaleMac.h: Ditto.
31439
31440 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31441
31442         The shadow element is not reprojected to a nested ShadowRoot.
31443         https://bugs.webkit.org/show_bug.cgi?id=99228
31444
31445         Reviewed by Dimitri Glazkov.
31446
31447         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31448
31449         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31450         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31451         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31452         the InsertionPoint in older ShadowDOM is chosen.
31453
31454         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31455
31456         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31457                fast/dom/shadow/shadow-reprojection-click.html
31458                fast/dom/shadow/shadow-reprojection-dynamic.html
31459                fast/dom/shadow/shadow-reprojection-fallback.html
31460                fast/dom/shadow/shadow-reprojection.html
31461                fast/dom/shadow/shadow-reprojection2.html
31462
31463         * css/StyleResolver.cpp:
31464         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31465         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31466         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31467         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31468         * dom/ComposedShadowTreeWalker.cpp:
31469         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31470         (WebCore):
31471         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31472         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31473         (WebCore::ComposedShadowTreeWalker::traverseParent):
31474         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31475         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31476         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31477         In that case, we should not update m_distributedNode.
31478         * dom/ElementShadow.cpp:
31479         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31480         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31481         is not correct now due to shadow reprojection.
31482         * html/shadow/ContentDistributor.cpp:
31483         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31484         distributed nodes.
31485         (WebCore):
31486         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31487         we have to resolve a shadow InsertionPoint
31488         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31489         * html/shadow/ContentDistributor.h:
31490         (ContentDistributor):
31491         * html/shadow/HTMLShadowElement.h:
31492         (WebCore::toHTMLShadowElement):
31493         (WebCore):
31494         * html/shadow/InsertionPoint.h:
31495         (WebCore::parentNodeForDistribution):
31496         (WebCore::parentElementForDistribution):
31497         (WebCore):
31498
31499 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31500
31501         Webkit adds a boundary to the Content-Type: text/plain POST header
31502         https://bugs.webkit.org/show_bug.cgi?id=100445
31503
31504         Reviewed by Kent Tamura.
31505
31506         Fixed a bug where an empty boundary parameter was added to Content-Type
31507         header when POSTing forms with enctype=text/plain.
31508
31509         Test: http/tests/misc/form-post-textplain.html
31510
31511         * loader/FormSubmission.cpp:
31512         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31513         Content-Type only when a boundary string is generated.
31514
31515 2012-10-28  Philip Rogers  <pdr@google.com>
31516
31517         Cache calcMode() value for SVG animations.
31518         https://bugs.webkit.org/show_bug.cgi?id=99694
31519
31520         Reviewed by Eric Seidel.
31521
31522         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31523         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31524         animations each, calls to calcMode() account for 3% of the total animation. After this
31525         patch, calcMode() no longer appears in animation profiles at all.
31526
31527         No new tests as this functionality is covered by existing tests.
31528
31529         * svg/SVGAnimateMotionElement.cpp:
31530         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31531
31532             The default calcMode for all animation types is linear except AnimateMotion,
31533             which defaults to CalcModePaced.
31534             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31535
31536         * svg/SVGAnimationElement.cpp:
31537         (WebCore::SVGAnimationElement::SVGAnimationElement):
31538         (WebCore::SVGAnimationElement::isSupportedAttribute):
31539         (WebCore::SVGAnimationElement::parseAttribute):
31540         (WebCore::SVGAnimationElement::setCalcMode):
31541         * svg/SVGAnimationElement.h:
31542         (WebCore::SVGAnimationElement::calcMode):
31543         (WebCore::SVGAnimationElement::setCalcMode):
31544         (SVGAnimationElement):
31545
31546 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31547
31548         Get rid of StyleResolver state related to unknown pseudo-elements.
31549         https://bugs.webkit.org/show_bug.cgi?id=100582
31550
31551         Reviewed by Eric Seidel.
31552
31553         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31554         We can just get rid of most of this code in StyleResolver.
31555
31556         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31557         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31558
31559         No change in behavior, covered by existing tests.
31560
31561         * css/SelectorChecker.cpp:
31562         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31563         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31564         * css/SelectorChecker.h:
31565         (SelectorChecker): Ditto.
31566         * css/StyleResolver.cpp:
31567         (WebCore::StyleResolver::StyleResolver): Ditto.
31568         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31569         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31570         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31571         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31572         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31573         * css/StyleResolver.h:
31574         (StyleResolver): Removed now-unnecessary member.
31575
31576 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31577
31578         Unreviewed, rolling out r132696.
31579         http://trac.webkit.org/changeset/132696
31580         https://bugs.webkit.org/show_bug.cgi?id=100609
31581
31582         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31583         dglazkov on #webkit).
31584
31585         * rendering/RenderBlock.cpp:
31586         (WebCore::RenderBlock::updateFirstLetter):
31587         * rendering/RenderListBox.h:
31588         * rendering/RenderObjectChildList.cpp:
31589         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31590
31591 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31592
31593         All tests crash in WebKit1 mode
31594         https://bugs.webkit.org/show_bug.cgi?id=100602
31595
31596         Reviewed by Sam Weinig.
31597
31598         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31599         assertion - if this function is called twice, it should be with the same strategy.
31600
31601 2012-10-27  Anders Carlsson  <andersca@apple.com>
31602
31603         Fix AVFoundation build.
31604
31605         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31606         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31607
31608 2012-10-27  David Barton  <dbarton@mathscribe.com>
31609
31610         ASSERTION FAILED: m_next in LayoutState.cpp
31611         https://bugs.webkit.org/show_bug.cgi?id=99796
31612
31613         Reviewed by Eric Seidel.
31614
31615         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31616         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31617         metrics here, and the final layout may well happen again.
31618
31619         No new tests. I don't know how to create an automated test for this. The crashes users are
31620         seeing are flaky.
31621
31622         * rendering/mathml/RenderMathMLBlock.cpp:
31623         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31624
31625 2012-10-27  David Barton  <dbarton@mathscribe.com>
31626
31627         [MathML] Improve some addChild methods
31628         https://bugs.webkit.org/show_bug.cgi?id=98791
31629
31630         Reviewed by Eric Seidel.
31631
31632         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31633         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31634         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31635         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31636         giving them to the chromium fuzzers.
31637         
31638         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31639         tree after later removeChild calls.
31640
31641         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31642         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31643
31644         * rendering/mathml/RenderMathMLFraction.cpp:
31645         (WebCore::RenderMathMLFraction::addChild):
31646             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31647               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31648               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31649               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31650         * rendering/mathml/RenderMathMLRoot.cpp:
31651         (WebCore::RenderMathMLRoot::addChild):
31652             - A bit of bullet-proofing for the fuzzers.
31653         * rendering/mathml/RenderMathMLSubSup.cpp:
31654         (WebCore::RenderMathMLSubSup::addChild):
31655             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31656
31657 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31658
31659         Background images can incorrectly repeat with sub-pixel layout
31660         https://bugs.webkit.org/show_bug.cgi?id=94622
31661
31662         Reviewed by Emil A Eklund.
31663
31664         Attempting to better match author expectations when painting tiled background images. When under
31665         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31666         differ depending on its location. This change looks at the size of the scaled tiled background
31667         image size, and either ceils or floors that value depending on if tiling that value will
31668         result in us being one pixel or less short of covering the background size. This is a heuristic,
31669         as sub-pixel/zooming isn't specced.
31670
31671         Test: fast/sub-pixel/scaled-background-image.html
31672
31673         * rendering/RenderBoxModelObject.cpp:
31674         (WebCore::applySubPixelHeuristicForTileSize):
31675         (WebCore):
31676         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31677
31678 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31679
31680         Unreviewed, rolling out r132725.
31681         http://trac.webkit.org/changeset/132725
31682         https://bugs.webkit.org/show_bug.cgi?id=100596
31683
31684         it broke linking on chromium debug bots (Requested by loislo
31685         on #webkit).
31686
31687         * inspector/InspectorMemoryAgent.cpp:
31688         (WebCore::addPlatformComponentsInfo):
31689         (WebCore):
31690         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31691         * platform/MemoryUsageSupport.cpp:
31692         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31693         * platform/MemoryUsageSupport.h:
31694         (ComponentInfo):
31695         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31696         (MemoryUsageSupport):
31697         * platform/PlatformMemoryInstrumentation.cpp:
31698         (WebCore):
31699         * platform/PlatformMemoryInstrumentation.h:
31700         (PlatformMemoryTypes):
31701         * platform/chromium/MemoryUsageSupportChromium.cpp:
31702         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31703         * platform/qt/MemoryUsageSupportQt.cpp:
31704         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31705
31706 2012-10-27  Dan Bernstein  <mitz@apple.com>
31707
31708         REAL_PLATFORM_NAME build setting is no longer needed
31709         https://bugs.webkit.org/show_bug.cgi?id=100587
31710
31711         Reviewed by Mark Rowe.
31712
31713         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31714         to PLATFORM_NAME.
31715
31716         * Configurations/Base.xcconfig:
31717         * Configurations/CompilerVersion.xcconfig:
31718         * Configurations/DebugRelease.xcconfig:
31719         * Configurations/FeatureDefines.xcconfig:
31720         * Configurations/Version.xcconfig:
31721         * Configurations/WebCore.xcconfig:
31722
31723 2012-10-27  Tony Chang  <tony@chromium.org>
31724
31725         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31726         https://bugs.webkit.org/show_bug.cgi?id=100564
31727
31728         Reviewed by Adam Barth.
31729
31730         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31731         Also fix a bug where we didn't reset these settings properly.
31732
31733         No new tests, this is covered by existing media/track tests.
31734
31735         * testing/InternalSettings.cpp:
31736         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31737         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31738         * testing/InternalSettings.h:
31739         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31740         * testing/Internals.cpp: Remove code.
31741         * testing/Internals.h: Remove code.
31742         * testing/Internals.idl: Remove code.
31743
31744 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31745
31746         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31747         https://bugs.webkit.org/show_bug.cgi?id=100515
31748
31749         Reviewed by Yury Semikhatsky.
31750
31751         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31752
31753         * inspector/InspectorMemoryAgent.cpp:
31754         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31755         * platform/MemoryUsageSupport.cpp:
31756         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31757         * platform/MemoryUsageSupport.h:
31758         (MemoryUsageSupport):
31759         * platform/PlatformMemoryInstrumentation.cpp:
31760         (WebCore):
31761         * platform/PlatformMemoryInstrumentation.h:
31762         (PlatformMemoryTypes):
31763         * platform/chromium/MemoryUsageSupportChromium.cpp:
31764         (reportMemoryUsage):
31765         (WebCore::reportGlyphCache):
31766         (WebCore):
31767         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31768         * platform/qt/MemoryUsageSupportQt.cpp:
31769         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31770
31771 2012-10-26  Philip Rogers  <pdr@google.com>
31772
31773         Prevent NaN offset values in ElementTimeControl.
31774         https://bugs.webkit.org/show_bug.cgi?id=100322
31775
31776         Reviewed by Abhishek Arya.
31777
31778         NaN values can cause ElementTimeControl to go back in time!
31779         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31780         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31781         because NaN values are not properly sorted. NaN SMILTime values
31782         should not be allowed at all, so this patch adds a check for them in
31783         ElementTimeControl's setters.
31784  
31785         This patch also adds preventative asserts to catch if SMILTime is ever
31786         initialized with NaN, or if addEndTime/addBeginTime are ever called
31787         with NaN values.
31788
31789         Test: svg/custom/elementTimeControl-nan-crash.html
31790
31791         * svg/SVGAnimationElement.cpp:
31792         (WebCore::SVGAnimationElement::beginElementAt):
31793         (WebCore::SVGAnimationElement::endElementAt):
31794         * svg/animation/SMILTime.h:
31795         (WebCore::SMILTime::SMILTime):
31796         * svg/animation/SVGSMILElement.cpp:
31797         (WebCore::SVGSMILElement::addBeginTime):
31798         (WebCore::SVGSMILElement::addEndTime):
31799
31800 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31801
31802         [BlackBerry] Browser prematurely sends wrong credentials
31803         https://bugs.webkit.org/show_bug.cgi?id=100585
31804
31805         Reviewed by Yong Li.
31806
31807         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31808         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31809         revert.
31810
31811         No new tests. The test is coverted by patch for 100448.
31812
31813         * platform/network/blackberry/CredentialBackingStore.cpp:
31814         * platform/network/blackberry/CredentialBackingStore.h:
31815         (CredentialBackingStore):
31816         * platform/network/blackberry/NetworkManager.cpp:
31817         (WebCore::NetworkManager::startJob):
31818
31819 2012-10-26  Brady Eidson  <beidson@apple.com>
31820
31821         Have NetworkProcess manage resource load scheduling.
31822         https://bugs.webkit.org/show_bug.cgi?id=100479
31823
31824         Reviewed by Alexey Proskuryakov.
31825
31826         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31827         to be overridden by WebKit's implementation.
31828
31829         No new tests (No change in Core behavior).
31830
31831         * WebCore.exp.in:
31832         * WebCore.xcodeproj/project.pbxproj:
31833
31834         * loader/ResourceLoadScheduler.cpp:
31835         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31836         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31837         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31838           here so derived classes can do it indirectly.
31839         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31840           ResourceLoader::start() which only ResourceLoadScheduler can do.
31841
31842         * loader/ResourceLoadScheduler.h:
31843         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31844         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31845         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31846
31847         * loader/ResourceLoader.cpp:
31848         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31849
31850         * loader/ResourceLoader.h:
31851         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31852         (WebCore::ResourceLoader::request): Make public.
31853         (ResourceLoader):
31854
31855 2012-10-26  Chris Rogers  <crogers@google.com>
31856
31857         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31858         https://bugs.webkit.org/show_bug.cgi?id=100170
31859
31860         Reviewed by Kenneth Russell.
31861
31862         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31863         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31864         For example, the first part of the sample data might represent the attack portion of
31865         a synthesized instrument, which then enters a loop portion.
31866
31867         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31868                webaudio/audiobuffersource-loop-points.html
31869
31870         * Modules/webaudio/AudioBufferSourceNode.cpp:
31871         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31872         (WebCore::AudioBufferSourceNode::process):
31873         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31874         * Modules/webaudio/AudioBufferSourceNode.h:
31875         (AudioBufferSourceNode):
31876         (WebCore::AudioBufferSourceNode::loopStart):
31877         (WebCore::AudioBufferSourceNode::loopEnd):
31878         (WebCore::AudioBufferSourceNode::setLoopStart):
31879         (WebCore::AudioBufferSourceNode::setLoopEnd):
31880         * Modules/webaudio/AudioBufferSourceNode.idl:
31881
31882 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31883
31884         dragover's default action should prevent drop for file drags
31885         https://bugs.webkit.org/show_bug.cgi?id=79173
31886
31887         Reviewed by Tony Chang.
31888
31889         During a file drag, we need to keep track of whether or not the document has cancelled the
31890         dragover action. We should only send a drop event if the dragover event was cancelled; this
31891         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31892         from the spec are the sections pertaining to dragover and drop events at:
31893         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31894
31895         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31896
31897         * page/DragController.cpp:
31898         (WebCore::DragController::performDrag):
31899         (WebCore::DragController::dragEnteredOrUpdated):
31900         (WebCore::DragController::tryDocumentDrag):
31901         * page/DragController.h:
31902         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31903                           and remove the corresponding getter/setter.
31904
31905 2012-10-26  Nico Weber  <thakis@chromium.org>
31906
31907         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31908         https://bugs.webkit.org/show_bug.cgi?id=94756
31909
31910         Reviewed by Dirk Schulze.
31911
31912         The function has an early exit for !simpleDuration.value(), so
31913         !simpleDuration.value() always is 0 when passed as second parameter to
31914         fmod(), which means fmod() always returns NaN, which always evaluates
31915         to true. Simplify the code by removing that explicit check.
31916
31917         No observable behavior change.
31918
31919         Covered by existing svg tests.
31920
31921         * svg/animation/SVGSMILElement.cpp:
31922         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31923
31924 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31925
31926         Unreviewed, rolling out r132695.
31927         http://trac.webkit.org/changeset/132695
31928         https://bugs.webkit.org/show_bug.cgi?id=100581
31929
31930         caused 20+ test crashes on bots (Requested by estes on
31931         #webkit).
31932
31933         * dom/ContainerNode.cpp:
31934         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31935         (WebCore::ContainerNode::resumePostAttachCallbacks):
31936         * loader/MainResourceLoader.cpp:
31937         (WebCore::MainResourceLoader::loadNow):
31938         * loader/ResourceLoadScheduler.cpp:
31939         (WebCore::resourceLoadScheduler):
31940         * loader/ResourceLoadScheduler.h:
31941         * loader/ResourceLoader.cpp:
31942         (WebCore::ResourceLoader::releaseResources):
31943         (WebCore::ResourceLoader::willSendRequest):
31944         * loader/cache/CachedResource.cpp:
31945         (WebCore::CachedResource::load):
31946         * loader/cache/CachedResourceLoader.cpp:
31947         (WebCore::CachedResourceLoader::performPostLoadActions):
31948
31949 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31950
31951         Unreviewed, rolling out r132702.
31952         http://trac.webkit.org/changeset/132702
31953         https://bugs.webkit.org/show_bug.cgi?id=100322
31954
31955         Compile error on Chromium Linux dbg builder (and others)
31956
31957         * svg/SVGAnimationElement.cpp:
31958         (WebCore::SVGAnimationElement::beginElementAt):
31959         (WebCore::SVGAnimationElement::endElementAt):
31960         * svg/animation/SMILTime.h:
31961         (WebCore::SMILTime::SMILTime):
31962         * svg/animation/SVGSMILElement.cpp:
31963         (WebCore::SVGSMILElement::addBeginTime):
31964         (WebCore::SVGSMILElement::addEndTime):
31965
31966 2012-10-26  Philip Rogers  <pdr@google.com>
31967
31968         Prevent NaN offset values in ElementTimeControl.
31969         https://bugs.webkit.org/show_bug.cgi?id=100322
31970
31971         Reviewed by Abhishek Arya.
31972
31973         NaN values can cause ElementTimeControl to go back in time!
31974         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31975         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31976         because NaN values are not properly sorted. NaN SMILTime values
31977         should not be allowed at all, so this patch adds a check for them in
31978         ElementTimeControl's setters.
31979
31980         This patch also adds preventative asserts to catch if SMILTime is ever
31981         initialized with NaN, or if addEndTime/addBeginTime are ever called
31982         with NaN values.
31983
31984         Test: svg/custom/elementTimeControl-nan-crash.html
31985
31986         * svg/SVGAnimationElement.cpp:
31987         (WebCore::SVGAnimationElement::beginElementAt):
31988         (WebCore::SVGAnimationElement::endElementAt):
31989         * svg/animation/SMILTime.h:
31990         (WebCore::SMILTime::SMILTime):
31991         * svg/animation/SVGSMILElement.cpp:
31992         (WebCore::SVGSMILElement::addBeginTime):
31993         (WebCore::SVGSMILElement::addEndTime):
31994
31995 2012-10-26  Tony Chang  <tony@chromium.org>
31996
31997         Move non-Settings Inspector methods from internals.settings to internals
31998         https://bugs.webkit.org/show_bug.cgi?id=100392
31999
32000         Reviewed by Adam Barth.
32001
32002         These methods don't have to do with the WebCore Settings object, so move them up to internals.
32003         I moved the reset code from InternalSettings to Internals.
32004
32005         No new tests, this is just a rename. Existing tests should pass.
32006
32007         * testing/InternalSettings.cpp:
32008         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
32009         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
32010         * testing/InternalSettings.h:
32011         * testing/InternalSettings.idl:
32012         * testing/Internals.cpp:
32013         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
32014         methods in WTR.
32015         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
32016         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
32017         * testing/Internals.h:
32018         * testing/Internals.idl:
32019         * testing/js/WebCoreTestSupport.cpp:
32020         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32021         * testing/v8/WebCoreTestSupport.cpp:
32022         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32023
32024 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
32025
32026         AX: Notification should be sent when accessibilityIsIgnored changes
32027         https://bugs.webkit.org/show_bug.cgi?id=99547
32028
32029         Reviewed by Chris Fleizach.
32030
32031         Adds a new flag in AccessibilityObject that keeps track of the most recent
32032         value of accessibilityIsIgnored(). After certain events such as an ARIA
32033         attribute change or content change, checks the new value of
32034         accessibilityIsIgnored() and posts a "children changed" notification on the
32035         parent node if it changed, making sure the parent recomputes its vector of
32036         (unignored) children.
32037
32038         Also moves handling of attribute changes to AXObjectCache, and sends
32039         notifications for some attribute changes that were previously silent. On
32040         Chromium, all changes to an accessibility object's attributes should
32041         result in some notification.
32042
32043         Some tests would have broken because an AccessibilityScrollView was created
32044         and holding a reference to a ScrollView for an iframe after it was deleted,
32045         so this change switches AccessibilityScrollView to hold a weak reference
32046         to ScrollView instead.
32047
32048         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
32049                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
32050                platform/chromium/accessibility/text-change-notification.html
32051
32052         * accessibility/AXObjectCache.cpp:
32053         (WebCore::AXObjectCache::focusedUIElementForPage):
32054         (WebCore::AXObjectCache::getOrCreate):
32055         (WebCore::AXObjectCache::textChanged):
32056         (WebCore):
32057         (WebCore::AXObjectCache::childrenChanged):
32058         (WebCore::AXObjectCache::handleAriaRoleChanged):
32059         (WebCore::AXObjectCache::handleAttributeChanged):
32060         (WebCore::AXObjectCache::labelChanged):
32061         (WebCore::AXObjectCache::recomputeIsIgnored):
32062         * accessibility/AXObjectCache.h:
32063         (AXObjectCache):
32064         (WebCore::AXObjectCache::childrenChanged):
32065         (WebCore::AXObjectCache::textChanged):
32066         (WebCore::AXObjectCache::handleAttributeChanged):
32067         (WebCore::AXObjectCache::recomputeIsIgnored):
32068         * accessibility/AccessibilityNodeObject.cpp:
32069         (WebCore::AccessibilityNodeObject::insertChild):
32070         * accessibility/AccessibilityObject.cpp:
32071         (WebCore::AccessibilityObject::AccessibilityObject):
32072         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
32073         (WebCore):
32074         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
32075         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
32076         * accessibility/AccessibilityObject.h:
32077         (WebCore::AccessibilityObject::textChanged):
32078         (AccessibilityObject):
32079         * accessibility/AccessibilityRenderObject.cpp:
32080         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
32081         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
32082         (WebCore::AccessibilityRenderObject::textChanged):
32083         (WebCore::AccessibilityRenderObject::addHiddenChildren):
32084         (WebCore::AccessibilityRenderObject::addChildren):
32085         * accessibility/AccessibilityRenderObject.h:
32086         (AccessibilityRenderObject):
32087         * accessibility/AccessibilityScrollView.cpp:
32088         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
32089         (WebCore):
32090         (WebCore::AccessibilityScrollView::detach):
32091         (WebCore::AccessibilityScrollView::isAttachment):
32092         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
32093         (WebCore::AccessibilityScrollView::updateScrollbars):
32094         (WebCore::AccessibilityScrollView::webAreaObject):
32095         (WebCore::AccessibilityScrollView::elementRect):
32096         (WebCore::AccessibilityScrollView::documentFrameView):
32097         (WebCore::AccessibilityScrollView::parentObject):
32098         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32099         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32100         (WebCore::AccessibilityScrollView::scrollTo):
32101         * accessibility/AccessibilityScrollView.h:
32102         (WebCore::AccessibilityScrollView::scrollView):
32103         (AccessibilityScrollView):
32104         * accessibility/AccessibilityTable.cpp:
32105         (WebCore::AccessibilityTable::isDataTable):
32106         * accessibility/chromium/AXObjectCacheChromium.cpp:
32107         (WebCore::AXObjectCache::postPlatformNotification):
32108         * dom/Element.cpp:
32109         (WebCore::Element::attributeChanged):
32110         * rendering/RenderBlock.cpp:
32111         (WebCore::RenderBlock::deleteLineBoxTree):
32112         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32113         * rendering/RenderObject.cpp:
32114         (WebCore::RenderObject::styleWillChange):
32115         * rendering/RenderText.cpp:
32116         (WebCore::RenderText::setText):
32117
32118 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32119
32120         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32121         https://bugs.webkit.org/show_bug.cgi?id=100547
32122
32123         Reviewed by Adam Barth.
32124
32125         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32126         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32127         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32128
32129         Binding test expectations updated.
32130
32131         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32132         (DirectoryEntry):
32133         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32134         (IDBDatabase):
32135         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32136         (IDBObjectStore):
32137         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32138         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32139         (GenerateParametersCheck):
32140         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32141         (GenerateParametersCheck):
32142         * bindings/scripts/test/JS/JSTestObj.cpp:
32143         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32144         * bindings/scripts/test/V8/V8TestObj.cpp:
32145         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32146
32147 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32148
32149         Generated should not be supported for things with a shadow
32150         https://bugs.webkit.org/show_bug.cgi?id=98836
32151
32152         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32153         Initial rollout was speculative and was shown not to be related to crashes.
32154         Change author: Elliott Sprehn  <esprehn@chromium.org>
32155
32156         As far as CSS is concerned inputs and things with shadow content inside 
32157         shouldn't support pseudo elements like :before, :after or :first-letter.
32158         Neither Gecko or Presto supports it, and we only accidentally supported 
32159         it. 
32160  
32161         Until the spec tells us what to do we should disable support. This is 
32162         also neccesary because the new generated content implementation doesn't 
32163         support shadows. 
32164
32165         Test: fast/forms/pseudo-elements.html
32166
32167         * rendering/RenderBlock.cpp:
32168         (WebCore::RenderBlock::updateFirstLetter):
32169         * rendering/RenderListBox.h:
32170         * rendering/RenderObjectChildList.cpp:
32171         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32172
32173 2012-10-26  Brady Eidson  <beidson@apple.com>
32174
32175         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32176         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32177
32178         Reviewed by Alexey Proskuryakov.
32179
32180         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32181         spots that call resourceLoadScheduler().
32182
32183         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32184         to get out of sync.
32185
32186         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32187         choke point for all ResourceLoadScheduler access.
32188
32189         No new tests 
32190         (No change of behavior for the default config, not testable at this time in the repro config)
32191
32192         Add a single choke point for accessing the correct ResourceLoadScheduler:
32193         * loader/ResourceLoadScheduler.cpp:
32194         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32195         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32196
32197         Revert back to using that single choke point everywhere:
32198         * dom/ContainerNode.cpp:
32199         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32200         (WebCore::ContainerNode::resumePostAttachCallbacks):
32201
32202         * loader/MainResourceLoader.cpp:
32203         (WebCore::MainResourceLoader::loadNow):
32204
32205         * loader/ResourceLoader.cpp:
32206         (WebCore::ResourceLoader::releaseResources):
32207         (WebCore::ResourceLoader::willSendRequest):
32208
32209         * loader/cache/CachedResource.cpp:
32210         (WebCore::CachedResource::load):
32211
32212         * loader/cache/CachedResourceLoader.cpp:
32213         (WebCore::CachedResourceLoader::performPostLoadActions):
32214
32215 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32216
32217         Try to fix the windows build
32218         https://bugs.webkit.org/show_bug.cgi?id=100556
32219
32220         Reviewed by Eric Seidel.
32221
32222         Touch files by adding whitespace to try and make the windows
32223         build bot regenerate files.
32224
32225         No new tests, just kick the bot.
32226
32227         * dom/DOMAllInOne.cpp:
32228         * html/HTMLElementsAllInOne.cpp:
32229         * html/shadow/TextControlInnerElements.cpp:
32230
32231 2012-10-26  Rob Buis  <rbuis@rim.com>
32232
32233         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32234         https://bugs.webkit.org/show_bug.cgi?id=100518
32235
32236         PR 231732
32237
32238         Reviewed by Yong Li.
32239
32240         Use the new resource/image loading abstraction ResourceStore.
32241
32242         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32243         (WebCore::Image::loadPlatformResource):
32244
32245 2012-10-26  Bear Travis  <betravis@adobe.com>
32246
32247         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32248         https://bugs.webkit.org/show_bug.cgi?id=98189
32249
32250         Reviewed by Dirk Schulze.
32251
32252         The initial code assumed that each block created a new layout state, such that
32253         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32254         Typically, however, block children of a shape-inside do not create a new layout state,
32255         and therefore we use the current element's offset instead.
32256
32257         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32258
32259         * rendering/RenderBlockLineLayout.cpp:
32260         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32261         rather than LayoutState::layoutOffset::width/height and logicalTop.
32262
32263 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32264
32265         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32266         https://bugs.webkit.org/show_bug.cgi?id=100397
32267
32268         Reviewed by Ojan Vafai.
32269
32270         Use Node custom callbacks to support the non-renderer style caching for option
32271         and optgroup eliminating the need for setRenderStyle.
32272
32273         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32274         so they could store their RenderStyle even though they have no renderer. This
32275         means all style setting went through the virtual call to setRenderStyle, and it
32276         also hid the if statement protecting against null renderers meaning we end up
32277         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32278         up recalcStyle to be more clear about what's going on.
32279
32280         No new tests needed, this is just a refactor.
32281
32282         * dom/Element.cpp:
32283         (WebCore::Element::pseudoStyleCacheIsInvalid):
32284         (WebCore::Element::recalcStyle):
32285         * dom/Node.cpp:
32286         (WebCore::Node::createRenderer):
32287         (WebCore::Node::setRenderStyle):
32288             Removed this method because it was only here to support HTMLOptionElement
32289             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32290         * dom/Node.h:
32291         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32292         * dom/NodeRenderStyle.h:
32293         (WebCore::Node::renderStyle):
32294         * html/HTMLOptGroupElement.cpp:
32295         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32296         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32297         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32298         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32299         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32300         * html/HTMLOptGroupElement.h:
32301         * html/HTMLOptionElement.cpp:
32302         (WebCore::HTMLOptionElement::HTMLOptionElement):
32303         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32304         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32305         (WebCore::HTMLOptionElement::nonRendererStyle):
32306         (WebCore::HTMLOptionElement::customStyleForRenderer):
32307         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32308         * html/HTMLOptionElement.h:
32309
32310 2012-10-26  Dirk Schulze  <krit@webkit.org>
32311
32312         -webkit-clip-path property should just reference clipPath
32313         https://bugs.webkit.org/show_bug.cgi?id=100531
32314
32315         Reviewed by Eric Seidel.
32316
32317         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32318
32319         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32320
32321         * rendering/RenderLayer.cpp:
32322         (WebCore::RenderLayer::paintLayerContents):
32323
32324 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32325
32326         Remove the circular reference between TextTrack and TextTrackCue
32327         https://bugs.webkit.org/show_bug.cgi?id=100300
32328
32329         Reviewed by Eric Carlson.
32330
32331         Changed TextTrackCue.m_track to a normal pointer to break the circular
32332         reference that was keeping both objects from ever getting deleted.
32333
32334         No new tests. This simply fixes a memory leak.
32335
32336         * html/track/TextTrack.cpp:
32337         (WebCore::TextTrack::~TextTrack):
32338         * html/track/TextTrackCue.cpp:
32339         (WebCore::TextTrackCue::TextTrackCue):
32340         (WebCore::TextTrackCue::~TextTrackCue):
32341         (WebCore::TextTrackCue::track):
32342         (WebCore::TextTrackCue::setTrack):
32343         * html/track/TextTrackCue.h:
32344         (TextTrackCue):
32345
32346 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32347
32348         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32349         https://bugs.webkit.org/show_bug.cgi?id=100535
32350
32351         Reviewed by Pavel Feldman.
32352
32353         Added SourceMappingChanged event to UISourceCode and made
32354         JavaScriptSourceFrame update ScriptFile events listeners on it.
32355
32356         * inspector/front-end/JavaScriptSourceFrame.js:
32357         (WebInspector.JavaScriptSourceFrame):
32358         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32359         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32360         * inspector/front-end/ResourceScriptMapping.js:
32361         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32362         * inspector/front-end/UISourceCode.js:
32363         (WebInspector.UISourceCode.prototype.setSourceMapping):
32364
32365 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32366
32367         Unreviewed, rolling out r132644.
32368         http://trac.webkit.org/changeset/132644
32369         https://bugs.webkit.org/show_bug.cgi?id=100497
32370
32371         Causes webkit_unit_tests
32372         MemoryInstrumentationTest.ImageObserver to fail.
32373
32374         * platform/network/ResourceRequestBase.cpp:
32375         (WebCore::ResourceRequestBase::reportMemoryUsage):
32376         * platform/network/ResourceRequestBase.h:
32377         (ResourceRequestBase):
32378         * platform/network/chromium/ResourceRequest.cpp:
32379         * platform/network/chromium/ResourceRequest.h:
32380
32381 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32382
32383         [Qt] MiniBrowser segfaults on exit after using WebGL.
32384         https://bugs.webkit.org/show_bug.cgi?id=100523
32385
32386         The display connection must not be closed before
32387         destroying the offscreen window.
32388         Therefore opening the connection is moved to the
32389         getXWindow() function. And closing the connection
32390         is being moved to the destructor of the offscreen window.
32391
32392         Reviewed by Kenneth Rohde Christiansen.
32393
32394
32395         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32396         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32397         (WebCore::OffScreenRootWindow::getXWindow):
32398         (OffScreenRootWindow):
32399         (WebCore::OffScreenRootWindow::display):
32400         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32401         (WebCore):
32402         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32403         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32404         (WebCore::GraphicsSurfacePrivate::createSurface):
32405
32406 2012-10-26  Parth Patel  <parpatel@rim.com>
32407
32408         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32409         Generic ThreadUnsafe Singleton
32410         https://bugs.webkit.org/show_bug.cgi?id=100529
32411
32412         Reviewed by Yong Li.
32413
32414         No new tests added as there was no behavioural change.
32415
32416         * platform/network/blackberry/NetworkManager.cpp:
32417         (WebCore):
32418         * platform/network/blackberry/NetworkManager.h:
32419         (NetworkManager):
32420
32421 2012-10-26  Mike West  <mkwst@chromium.org>
32422
32423         Web Inspector: Fix log-type icon alignment.
32424         https://bugs.webkit.org/show_bug.cgi?id=100520
32425
32426         Reviewed by Yury Semikhatsky.
32427
32428         The icons are just a pixel or two off, and it's driving me nuts.
32429
32430         * inspector/front-end/inspector.css:
32431         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32432         (.console-warning-level::before):
32433
32434 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32435
32436         Replaceable attributes should also have readonly
32437         https://bugs.webkit.org/show_bug.cgi?id=91768
32438
32439         Reviewed by Adam Barth.
32440
32441         This updates the code generators for JSC and V8 to handle this case correctly.
32442
32443         * Modules/intents/DOMWindowIntents.idl:
32444         * bindings/scripts/CodeGeneratorJS.pm:
32445         * bindings/scripts/CodeGeneratorV8.pm:
32446         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32447         * bindings/scripts/test/ObjC/DOMTestObj.h:
32448         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32449         * bindings/scripts/test/TestObj.idl:
32450         * bindings/scripts/test/V8/V8TestObj.cpp:
32451         * page/DOMWindow.idl:
32452         * workers/WorkerContext.idl:
32453
32454 2012-10-26  Nico Weber  <thakis@chromium.org>
32455
32456         Clear m_orientation in FrameData::clear() for skia
32457         https://bugs.webkit.org/show_bug.cgi?id=100456
32458
32459         Reviewed by Stephen White.
32460
32461         clear() is only called by the FrameData destructor and for multi-image
32462         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32463         have exif data, so this patch should have no effect in practice. It
32464         makes the skia code match the CG code in BitmapImageCG.cpp though.
32465
32466         * platform/graphics/skia/ImageSkia.cpp:
32467         (WebCore::FrameData::clear):
32468
32469 2012-10-26  Florin Malita  <fmalita@chromium.org>
32470
32471         Crash on loading SVG filter resource on HTML element
32472         https://bugs.webkit.org/show_bug.cgi?id=100491
32473
32474         Reviewed by Dirk Schulze.
32475
32476         Skip non-filter elements referenced via -webkit-filter.
32477
32478         Test: svg/filters/filter-reference-crash.html
32479
32480         * rendering/RenderLayerFilterInfo.cpp:
32481         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32482
32483 2012-10-26  Antti Koivisto  <antti@apple.com>
32484
32485         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32486         https://bugs.webkit.org/show_bug.cgi?id=100514
32487
32488         Reviewed by Anders Carlsson.
32489
32490         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32491         the document. The function is relatively slow.
32492         
32493         This patch caches the result of the last check for 5 seconds. Based on code comments
32494         prefetching is disabled with proxies due to regressing performance with some configurations.
32495         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32496
32497         * platform/network/DNSResolveQueue.cpp:
32498         (WebCore::DNSResolveQueue::DNSResolveQueue):
32499         
32500             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32501             
32502         (WebCore):
32503         (WebCore::DNSResolveQueue::isUsingProxy):
32504         (WebCore::DNSResolveQueue::add):
32505         (WebCore::DNSResolveQueue::fired):
32506         * platform/network/DNSResolveQueue.h:
32507         (DNSResolveQueue):
32508
32509 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32510
32511         Unreviewed, rolling out r132662.
32512         http://trac.webkit.org/changeset/132662
32513         https://bugs.webkit.org/show_bug.cgi?id=100528
32514
32515         It is not necessary any more. (Requested by loislo on
32516         #webkit).
32517
32518         * platform/qt/MemoryUsageSupportQt.cpp:
32519         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32520         (WebCore):
32521
32522 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32523
32524         Unreviewed build fix for Qt builders.
32525
32526         * platform/qt/MemoryUsageSupportQt.cpp:
32527
32528 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32529
32530         Unreviewed, rolling out r132658.
32531         http://trac.webkit.org/changeset/132658
32532         https://bugs.webkit.org/show_bug.cgi?id=100515
32533
32534         It broke the Qt build
32535
32536         * inspector/InspectorMemoryAgent.cpp:
32537         (WebCore::addPlatformComponentsInfo):
32538         (WebCore):
32539         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32540         * platform/MemoryUsageSupport.cpp:
32541         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32542         * platform/MemoryUsageSupport.h:
32543         (ComponentInfo):
32544         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32545         (MemoryUsageSupport):
32546         * platform/PlatformMemoryInstrumentation.cpp:
32547         (WebCore):
32548         * platform/PlatformMemoryInstrumentation.h:
32549         (PlatformMemoryTypes):
32550         * platform/chromium/MemoryUsageSupportChromium.cpp:
32551         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32552
32553 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32554
32555         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32556         https://bugs.webkit.org/show_bug.cgi?id=100522
32557
32558         Reviewed by Pavel Feldman.
32559
32560         Method appendApplicableItems now receives event as a parameter.
32561         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32562
32563         * inspector/front-end/BreakpointsSidebarPane.js:
32564         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32565         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32566         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32567         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32568         * inspector/front-end/CallStackSidebarPane.js:
32569         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32570         * inspector/front-end/ConsoleView.js:
32571         * inspector/front-end/ContextMenu.js:
32572         (WebInspector.ContextMenu):
32573         (WebInspector.ContextMenu.prototype.show):
32574         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32575         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32576         * inspector/front-end/CookieItemsView.js:
32577         (WebInspector.CookieItemsView.prototype._contextMenu):
32578         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32579         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32580         * inspector/front-end/DataGrid.js:
32581         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32582         * inspector/front-end/DefaultTextEditor.js:
32583         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32584         * inspector/front-end/ElementsPanel.js:
32585         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32586         * inspector/front-end/ElementsPanelDescriptor.js:
32587         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32588         * inspector/front-end/ElementsTreeOutline.js:
32589         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32590         * inspector/front-end/HandlerRegistry.js:
32591         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32592         * inspector/front-end/ImageView.js:
32593         (WebInspector.ImageView.prototype._contextMenu):
32594         * inspector/front-end/NavigatorView.js:
32595         (WebInspector.NavigatorView.prototype.handleContextMenu):
32596         * inspector/front-end/NetworkPanel.js:
32597         (WebInspector.NetworkLogView.prototype._contextMenu):
32598         * inspector/front-end/NetworkPanelDescriptor.js:
32599         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32600         * inspector/front-end/ObjectPropertiesSection.js:
32601         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32602         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32603         * inspector/front-end/ProfilesPanel.js:
32604         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32605         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32606         * inspector/front-end/ResourcesPanel.js:
32607         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32608         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32609         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32610         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32611         * inspector/front-end/ScriptsNavigator.js:
32612         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32613         * inspector/front-end/ScriptsPanel.js:
32614         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32615         * inspector/front-end/ScriptsPanelDescriptor.js:
32616         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32617         * inspector/front-end/StylesSidebarPane.js:
32618         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32619         * inspector/front-end/TabbedPane.js:
32620         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32621         * inspector/front-end/TimelinePanel.js:
32622         (WebInspector.TimelinePanel.prototype._contextMenu):
32623         * inspector/front-end/WatchExpressionsSidebarPane.js:
32624         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32625         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32626
32627 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32628
32629         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32630         https://bugs.webkit.org/show_bug.cgi?id=100515
32631
32632         Reviewed by Yury Semikhatsky.
32633
32634         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32635
32636         * inspector/InspectorMemoryAgent.cpp:
32637         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32638         * platform/MemoryUsageSupport.cpp:
32639         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32640         * platform/MemoryUsageSupport.h:
32641         (MemoryUsageSupport):
32642         * platform/PlatformMemoryInstrumentation.cpp:
32643         (WebCore):
32644         * platform/PlatformMemoryInstrumentation.h:
32645         (PlatformMemoryTypes):
32646         * platform/chromium/MemoryUsageSupportChromium.cpp:
32647         (reportMemoryUsage):
32648         (WebCore::reportGlyphCache):
32649         (WebCore):
32650         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32651
32652 2012-10-26  Kent Tamura  <tkent@chromium.org>
32653
32654         [Chromium] Build fix for r132650.
32655         https://bugs.webkit.org/show_bug.cgi?id=100482
32656
32657         * platform/text/LocaleWin.cpp:
32658         (WebCore::LocaleWin::timeFormat):
32659
32660 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32661
32662         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32663         https://bugs.webkit.org/show_bug.cgi?id=100517
32664
32665         Reviewed by Alexander Pavlov.
32666
32667         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32668         pointers to WrapperTypeInfo objects as they are static fields and belong to
32669         the data segment.
32670         (WTF):
32671
32672 2012-10-26  Kent Tamura  <tkent@chromium.org>
32673
32674         Refactor Localizer-related classes.
32675         https://bugs.webkit.org/show_bug.cgi?id=100482
32676
32677         Reviewed by Kentaro Hara.
32678
32679         - Localizer has unused code
32680          Localizer should have function implementations only if they are used in
32681          multiple subclasses.
32682         - Some Localizer subclasses hide Localizer data members
32683         - Should use String::isNull to check initialization-or-not
32684
32685         No new tests. This should not change any behavior.
32686
32687         * platform/text/Localizer.h:
32688         (Localizer):
32689         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32690         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32691           m_timeAMPMLabels
32692         * platform/text/Localizer.cpp:
32693         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32694
32695         * platform/text/LocaleICU.h:
32696         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32697         * platform/text/LocaleICU.cpp:
32698         (WebCore::LocaleICU::initializeDateTimeFormat):
32699         Use new data members instead of Localizer data members.
32700         (WebCore::LocaleICU::dateFormat): Use isNull.
32701
32702         * platform/text/LocaleNone.cpp:
32703         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32704         implementations, and m_timeAMPMLabels.
32705         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32706         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32707         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32708
32709         * platform/text/LocaleWin.h:
32710         (LocaleWin): Add m_timeFormatWithSeconds.
32711         * platform/text/LocaleWin.cpp:
32712         (WebCore::LocaleWin::dateFormat): Use isNull.
32713         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32714
32715         * platform/text/mac/LocaleMac.h:
32716         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32717         * platform/text/mac/LocaleMac.mm:
32718         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32719         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32720
32721 2012-10-26  Kent Tamura  <tkent@chromium.org>
32722
32723         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32724         https://bugs.webkit.org/show_bug.cgi?id=100454
32725
32726         Reviewed by Hajime Morita.
32727
32728         No new tests. The bug is timing-dependent.
32729
32730         * page/DOMWindowPagePopup.cpp:
32731         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32732         Calls clearPagePopupClient for the associalated PagePopupController object.
32733         * page/PagePopupController.cpp:
32734         (WebCore::PagePopupController::setValueAndClosePopup):
32735         Do nothing if m_popupClient is 0.
32736         (WebCore::PagePopupController::localizeNumberString): Ditto.
32737         (WebCore::PagePopupController::clearPagePopupClient): Added.
32738         * page/PagePopupController.h:
32739         (PagePopupController): Declare clearPagePopupClient.
32740
32741 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32742
32743         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32744         https://bugs.webkit.org/show_bug.cgi?id=100220
32745
32746         Reviewed by Yury Semikhatsky.
32747
32748         * inspector/front-end/Settings.js:
32749         (WebInspector.ExperimentsSettings):
32750         * inspector/front-end/SettingsScreen.js:
32751         (WebInspector.UserAgentSettingsTab):
32752
32753 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32754
32755         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32756         https://bugs.webkit.org/show_bug.cgi?id=100497
32757
32758         Reviewed by Alexander Pavlov.
32759
32760         Added memory reporting method to Chromium implementation of ResourceRequest.
32761
32762         * platform/network/ResourceRequestBase.cpp:
32763         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32764         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32765         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32766         in the descendant but ResourceRequestBase doesn't have any virtual methods
32767         and shouldn't be used directly (ResourceRequest should be used instead).
32768         * platform/network/ResourceRequestBase.h:
32769         (ResourceRequestBase):
32770         * platform/network/chromium/ResourceRequest.cpp:
32771         (WebCore::ResourceRequest::reportMemoryUsage):
32772         (WebCore):
32773         * platform/network/chromium/ResourceRequest.h:
32774         (ResourceRequest):
32775
32776 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32777
32778         Web Inspector: Remove the on-hover highlighting of console messages
32779         https://bugs.webkit.org/show_bug.cgi?id=100511
32780
32781         Reviewed by Pavel Feldman.
32782
32783         This clashes with the hovered element highlight in console messages.
32784
32785         * inspector/front-end/inspector.css:
32786         (ol.watch-expressions > li.hovered):
32787
32788 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32789
32790         Unreviewed, rolling out r132612.
32791         http://trac.webkit.org/changeset/132612
32792         https://bugs.webkit.org/show_bug.cgi?id=100512
32793
32794         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32795         (Requested by pfeldman on #webkit).
32796
32797         * rendering/AutoTableLayout.cpp:
32798         (WebCore::AutoTableLayout::recalcColumn):
32799         * rendering/FixedTableLayout.cpp:
32800         (WebCore::FixedTableLayout::calcWidthArray):
32801         * rendering/RenderTable.cpp:
32802         (WebCore::RenderTable::layout):
32803         * rendering/RenderTableCol.cpp:
32804         (WebCore::RenderTableCol::styleDidChange):
32805         (WebCore::RenderTableCol::updateFromElement):
32806         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32807         * rendering/RenderTableCol.h:
32808         (RenderTableCol):
32809
32810 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32811
32812         Web Inspector: fast return upon setting the same dock side.
32813         https://bugs.webkit.org/show_bug.cgi?id=100510
32814
32815         Reviewed by Vsevolod Vlasov.
32816
32817         Added fast return.
32818
32819         * inspector/front-end/DockController.js:
32820
32821 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32822
32823         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32824
32825         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32826         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32827
32828 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32829
32830         Printing should use use high resolution images when available
32831         https://bugs.webkit.org/show_bug.cgi?id=100488
32832
32833         Reviewed by Antti Koivisto.
32834
32835         The images loaded using -webkit-device-pixel-ratio depends on
32836         the display type (deviceScaleFactor) and thus affects which
32837         images are being used for printing. Printing should always
32838         use the higher resolution images (aka 'retina' images).
32839
32840         Test: fast/media/mq-pixel-ratio-print.html
32841
32842         * css/MediaQueryEvaluator.cpp:
32843         (WebCore::device_pixel_ratioMediaFeatureEval):
32844
32845 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32846
32847         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32848         https://bugs.webkit.org/show_bug.cgi?id=100496
32849
32850         Reviewed by Yury Semikhatsky.
32851
32852         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32853
32854         * dom/WebCoreMemoryInstrumentation.cpp:
32855         (WebCore):
32856         * dom/WebCoreMemoryInstrumentation.h:
32857         (WebCoreMemoryTypes):
32858         * inspector/InspectorResourceAgent.cpp:
32859         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32860         (WebCore):
32861         * inspector/InspectorResourceAgent.h:
32862         (InspectorResourceAgent):
32863         * inspector/NetworkResourcesData.cpp:
32864         (WebCore::XHRReplayData::reportMemoryUsage):
32865         (WebCore):
32866         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32867         (WebCore::NetworkResourcesData::reportMemoryUsage):
32868         * inspector/NetworkResourcesData.h:
32869         (XHRReplayData):
32870         (ResourceData):
32871         (NetworkResourcesData):
32872
32873 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32874
32875         Unreviewed, rolling out r132493.
32876         http://trac.webkit.org/changeset/132493
32877         https://bugs.webkit.org/show_bug.cgi?id=100509
32878
32879         It didn't fix the tests on the bot as we had hoped. (Requested
32880         by drott on #webkit).
32881
32882         * platform/network/cf/ResourceErrorCF.cpp:
32883         (WebCore::ResourceError::ResourceError):
32884
32885 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32886
32887         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32888         https://bugs.webkit.org/show_bug.cgi?id=100493
32889
32890         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32891         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32892
32893         Reviewed by Simon Hausmann.
32894
32895         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32896         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32897
32898 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32899
32900         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32901         https://bugs.webkit.org/show_bug.cgi?id=100492
32902
32903         This patch removes most of the QOpenGLContext related code
32904         from GraphicsSurfaceGLX. This allows sharing almost all
32905         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32906
32907         Reviewed by Kenneth Rohde Christiansen.
32908
32909         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32910         (WebCore::OffScreenRootWindow::get):
32911         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32912         (OffScreenRootWindow):
32913         (WebCore):
32914         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32915         (WebCore::GraphicsSurfacePrivate::createSurface):
32916         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32917         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32918         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32919         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32920         (GraphicsSurfacePrivate):
32921         (WebCore::resolveGLMethods):
32922
32923 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32924
32925         [EFL][WK2] Enable WebGL
32926         https://bugs.webkit.org/show_bug.cgi?id=97652
32927
32928         Reviewed by Gyuyoung Kim.
32929
32930         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32931         Depends on GLX since Evas doesn't provide the necessary functionality.
32932
32933         No new tests. Covered by existing tests.
32934
32935         * PlatformEfl.cmake:
32936         * platform/graphics/GraphicsContext3D.h:
32937         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32938         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32939         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32940         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32941         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32942         (WebCore):
32943         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32944         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32945         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32946         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32947         (GraphicsContext3DPrivate):
32948         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32949         (WebCore::GraphicsContext3D::reshape):
32950         * platform/graphics/surfaces/efl: Added.
32951         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32952         (WebCore):
32953         (WebCore::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         (WebCore::GraphicsSurface::platformBeginPaint):
32961         (WebCore::GraphicsSurface::createReadOnlyImage):
32962         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32963         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
32964         (WebCore):
32965         (OffScreenRootWindow):
32966         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32967         (GraphicsSurfacePrivate):
32968         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32969         (WebCore::GraphicsSurfacePrivate::createPixmap):
32970         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32971         (WebCore::GraphicsSurfacePrivate::display):
32972         (WebCore::GraphicsSurfacePrivate::glxPixmap):
32973         (WebCore::GraphicsSurfacePrivate::size):
32974         (WebCore::GraphicsSurfacePrivate::glContext):
32975         (WebCore::resolveGLMethods):
32976         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
32977         (WebCore):
32978         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
32979         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32980         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32981         (WebCore::GraphicsSurfacePrivate::createSurface):
32982         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32983         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32984         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32985
32986 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32987
32988         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
32989         https://bugs.webkit.org/show_bug.cgi?id=100484
32990
32991         Reviewed by Yury Semikhatsky.
32992
32993         The User Agent override state is managed in the front-end, just like for other override-able parameters.
32994
32995         * inspector/InspectorResourceAgent.cpp:
32996         (WebCore::InspectorResourceAgent::disable):
32997         * inspector/front-end/NetworkManager.js:
32998         (WebInspector.NetworkManager.get NetworkAgent):
32999         (WebInspector.NetworkManager):
33000         * inspector/front-end/SettingsScreen.js:
33001         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
33002         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
33003         * inspector/front-end/UserAgentSupport.js:
33004         (WebInspector.UserAgentSupport):
33005         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
33006         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
33007
33008 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33009
33010         [Shadow]: removing styles in shadow dom subtree causes crash.
33011         https://bugs.webkit.org/show_bug.cgi?id=100455
33012
33013         Reviewed by Hajime Morita.
33014
33015         To quickly check whether shadow roots or elements have any scoped
33016         styles or not, elements have hasStyleScoped flag. If elements have
33017         any scoped styles, the styles are direct children of the element.
33018         The original code just sees how many chilren are scoped style or not.
33019         However styles in shadow dom subtree are registered with the shadow
33020         root but are not always direct children of shadow roots. So to check
33021         whether shadow roots have any scoped styles, modified to count
33022         number of styles registered with the shadow root.
33023
33024         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
33025
33026         * dom/Node.cpp:
33027         (WebCore::Node::registerScopedHTMLStyleChild):
33028         (WebCore::Node::unregisterScopedHTMLStyleChild):
33029         Made the above two method virtual. class ShadowRoot overrides these
33030         methods.
33031         (WebCore::Node::numberOfScopedHTMLStyleChildren):
33032         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
33033         are moved into Node.cpp.
33034         * dom/Node.h:
33035         (Node):
33036         * dom/ShadowRoot.cpp:
33037         (WebCore::ShadowRoot::ShadowRoot):
33038         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
33039         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
33040         Modify to count how many styles are registered with the shadow root.
33041         The "counting" is done when styles are registered and unregistered
33042         with the shadow root, i.e. style element is inserted into document or
33043         removed from document. When unregister some style, there are no more
33044         styles registered with the shadow root. Set style scoped flag false.
33045         * dom/ShadowRoot.h:
33046         (ShadowRoot):
33047         * html/HTMLStyleElement.cpp:
33048         * html/HTMLStyleElement.h:
33049         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
33050         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
33051         moved .cpp to .h.
33052
33053 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33054
33055         Unreviewed, rolling out r132589.
33056         http://trac.webkit.org/changeset/132589
33057         https://bugs.webkit.org/show_bug.cgi?id=100498
33058
33059         Breaks font-face layout tests (Requested by pfeldman on
33060         #webkit).
33061
33062         * css/CSSFontFaceSource.cpp:
33063         (WebCore::CSSFontFaceSource::getFontData):
33064
33065 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33066
33067         [Shadow DOM] Needs @host rule for ShadowDOM styling
33068         https://bugs.webkit.org/show_bug.cgi?id=88606
33069
33070         Reviewed by Hajime Morita.
33071
33072         Implemented @host-@rules according to the shadow dom spec:
33073         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
33074         The design doc is:
33075         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
33076
33077         Test: fast/dom/shadow/athost-atrules.html
33078
33079         * css/CSSGrammar.y.in:
33080         Added rules for parsing @host @-rules.
33081         * css/CSSParser.cpp:
33082         (WebCore::CSSParser::detectAtToken):
33083         Added a new token "@host".
33084         (WebCore::CSSParser::createHostRule):
33085         Added a new method to create an @host @-rule, which is invoked from
33086         (WebCore):
33087         * css/CSSParser.h:
33088         Added a declaration of the above new method: createHostRule.
33089         * css/CSSPropertySourceData.h:
33090         Added HOST_RULE to enum Type.
33091         * css/RuleSet.cpp:
33092         (WebCore::RuleData::RuleData):
33093         Modified multiple bool arguments into one argument. Now it
33094         uses combinations of values from enum AddRuleFlags.
33095         (WebCore::RuleSet::addRule):
33096         (WebCore::RuleSet::addRegionRule):
33097         (WebCore::RuleSet::addStyleRule):
33098         Updated according to the RuleData's change.
33099         Modified to Invoke increaseSpecificity if the given rule is @host
33100         @-rule.
33101         (WebCore::RuleSet::addRulesFromSheet):
33102         Invoked addHostRule if the given rule is @host @-rule.
33103         * css/RuleSet.h:
33104         (RuleData):
33105         (WebCore::RuleData::increaseSpecificity):
33106         Added a new method to increase selector's specificity. This method is
33107         used to make @host @-rules' specificity larger than normal author
33108         rules' specificity.
33109         (RuleSet):
33110         * css/StyleResolver.cpp:
33111         (WebCore::makeRuleSet):
33112         (WebCore::StyleResolver::addHostRule):
33113         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33114         is used to make only StyleResolver know an implementation detail about
33115         class StyleScopeResolver.
33116         (WebCore::StyleResolver::appendAuthorStylesheets):
33117         Updated according to the RuleData's change.
33118         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33119         A new method to find matched host rules when an element is given.
33120         This method invokes
33121         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33122         matched host rules.
33123         (WebCore):
33124         (WebCore::StyleResolver::matchHostRules):
33125         A new method to find matched host rules when an element is given.
33126         This method invokes StyleScopeResolver::matchHostRules to find
33127         matched host rules.
33128         (WebCore::StyleResolver::matchScopedAuthorRules):
33129         Modified to invoke matchHostRules.
33130         (WebCore::StyleResolver::locateSharedStyle):
33131         Disable sibling style cache if the given element is a shadow host and
33132         any @host @-rules are applied to the element.
33133         * css/StyleResolver.h:
33134         (WebCore::StyleResolver::ensureScopeResolver):
33135         If no scopeResolver is created, create and return the instance.
33136         If created, just return the instance.
33137         (StyleResolver):
33138         * css/StyleRule.cpp:
33139         (WebCore::StyleRuleBase::reportMemoryUsage):
33140         (WebCore::StyleRuleBase::destroy):
33141         (WebCore::StyleRuleBase::copy):
33142         (WebCore::StyleRuleBase::createCSSOMWrapper):
33143         (WebCore::StyleRuleHost::StyleRuleHost):
33144         Implemented class StyleRuleHost. The class is almost the same as
33145         StyleRuleBlock except type.
33146         (WebCore):
33147         * css/StyleRule.h:
33148         (WebCore::StyleRuleBase::isHostRule):
33149         (StyleRuleHost):
33150         (WebCore::StyleRuleHost::create):
33151         (WebCore::StyleRuleHost::copy):
33152         (WebCore):
33153         * css/StyleScopeResolver.cpp:
33154         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33155         A new method to create a new RuleSet for the given shadow root.
33156         (WebCore):
33157         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33158         A new private inline method to obtain @host @-rules declared in
33159         the given shadow root.
33160         (WebCore::StyleScopeResolver::addHostRule):
33161         Added a new method to register @host @-rules with shadow roots.
33162         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33163         A new method to find whether any @host @-rules are applied to
33164         the given host element.
33165         (WebCore::StyleScopeResolver::matchHostRules):
33166         A new method to find matched rules for the given host element.
33167         (WebCore::StyleScopeResolver::reportMemoryUsage):
33168         * css/StyleScopeResolver.h:
33169         (WebCore):
33170         (StyleScopeResolver):
33171         * css/StyleSheetContents.cpp:
33172         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33173
33174 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33175
33176         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33177         https://bugs.webkit.org/show_bug.cgi?id=100476
33178
33179         Reviewed by Kentaro Hara.
33180
33181         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33182         but the source file for that feature is omitted.
33183
33184         No new tests. Covered by existing tests.
33185
33186         * CMakeLists.txt:
33187
33188 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33189
33190         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33191         https://bugs.webkit.org/show_bug.cgi?id=99861
33192
33193         Reviewed by Ojan Vafai.
33194
33195         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33196         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33197         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33198         or else we would ignore the next layout hint on the <col> or <colgroup>.
33199
33200         Tests: fast/table/col-span-change-relayout.html
33201                fast/table/simplified-layout-table.html
33202
33203         * rendering/AutoTableLayout.cpp:
33204         (WebCore::AutoTableLayout::recalcColumn):
33205         * rendering/RenderTable.cpp:
33206         (WebCore::RenderTable::layout):
33207         Simplified the code now that we only need to iterate over the sections.
33208
33209         * rendering/FixedTableLayout.cpp:
33210         (WebCore::FixedTableLayout::calcWidthArray):
33211         Removed call to computePreferredLogicalWidths.
33212
33213         * rendering/RenderTableCol.cpp:
33214         (WebCore::RenderTableCol::styleDidChange):
33215         (WebCore::RenderTableCol::updateFromElement):
33216         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33217
33218         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33219         (WebCore::RenderTableCol::layout):
33220         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33221         never called when it was possible.
33222
33223         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33224         New helper function that forward any layout cue to the containing table, this works around
33225         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33226         invalidateContainerPreferredLogicalWidths.
33227
33228         * rendering/RenderTableCol.h:
33229         Made the function that we are not expected to be called private.
33230
33231 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33232
33233         Unreviewed, rolling out r132601.
33234         http://trac.webkit.org/changeset/132601
33235         https://bugs.webkit.org/show_bug.cgi?id=100494
33236
33237         It broke the Qt build (Requested by Ossy on #webkit).
33238
33239         * PlatformEfl.cmake:
33240         * platform/graphics/GraphicsContext3D.h:
33241         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33242         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33243         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33244         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33245         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33246         (WebCore):
33247         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33248         (GraphicsContext3DPrivate):
33249         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33250         (WebCore::GraphicsContext3D::reshape):
33251         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33252         (WebCore::OffScreenRootWindow::get):
33253         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33254         (OffScreenRootWindow):
33255         (WebCore):
33256         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33257         (WebCore::GraphicsSurfacePrivate::createSurface):
33258         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33259         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33260         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33261         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33262         (GraphicsSurfacePrivate):
33263         (WebCore::resolveGLMethods):
33264
33265 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33266
33267         Memory instrumentation: do not report memory occupied by v8::String
33268         https://bugs.webkit.org/show_bug.cgi?id=100487
33269
33270         Reviewed by Alexander Pavlov.
33271
33272         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33273         string cache.
33274
33275         * bindings/v8/V8Binding.cpp:
33276         (WTF):
33277
33278 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33279
33280         [CSSRegions] Add support for auto-height regions with region-breaks
33281         https://bugs.webkit.org/show_bug.cgi?id=99952
33282
33283         Reviewed by David Hyatt.
33284
33285         This patch takes region breaks into account when computing the height for auto logical height regions.
33286         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33287         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33288         compute the region override logical content height if the region break fits inside an auto logical height region.
33289         A region break inside an auto logical height region determines the region override logical content height, taking
33290         min/max height into account.
33291
33292         Tests: fast/regions/autoheight-allregions-nobreaks.html
33293                fast/regions/autoheight-allregions.html
33294                fast/regions/autoheight-breakafteralways-maxheight.html
33295                fast/regions/autoheight-breakbeforealways.html
33296                fast/regions/autoheight-firstregion-breakalways.html
33297                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33298                fast/regions/autoheight-lastregion-overflowauto.html
33299                fast/regions/autoheight-middleregion.html
33300                fast/regions/autoheight-secondregion-breakoutside.html
33301                fast/regions/autoheight-secondregion.html
33302                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33303                fast/regions/autoheight-singleregion-breakafteralways.html
33304                fast/regions/autoheight-singleregion-breakaftermargin.html
33305                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33306                fast/regions/autoheight-singleregion-breakbeforealways.html
33307                fast/regions/autoheight-singleregion-multiplebreaks.html
33308                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33309                fast/regions/autoheight-singleregion-overflowauto.html
33310
33311         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33312         try to use it to determine the override logical content height for auto logical height regions.
33313         (WebCore::RenderBlock::applyBeforeBreak):
33314         (WebCore::RenderBlock::applyAfterBreak):
33315         * rendering/RenderFlowThread.cpp:
33316         (WebCore::RenderFlowThread::layout):
33317         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33318         Simulate a region break at the end of the flow thread content.
33319         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33320         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33321         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33322         (WebCore::RenderFlowThread::addForcedRegionBreak):
33323         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33324         has its override logical content height computed.        
33325         * rendering/RenderFlowThread.h:
33326         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33327         (WebCore::RenderRegion::pageLogicalHeight):
33328         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33329
33330 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33331
33332         [EFL][WK2] Enable WebGL
33333         https://bugs.webkit.org/show_bug.cgi?id=97652
33334
33335         Reviewed by Gyuyoung Kim.
33336
33337         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33338         Depends on GLX since Evas doesn't provide the necessary functionality.
33339
33340         No new tests. Covered by existing tests.
33341
33342         * PlatformEfl.cmake:
33343         * platform/graphics/GraphicsContext3D.h:
33344         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33345         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33346         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33347         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33348         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33349         (WebCore):
33350         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33351         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33352         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33353         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33354         (GraphicsContext3DPrivate):
33355         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33356         (WebCore::GraphicsContext3D::reshape):
33357         * platform/graphics/surfaces/efl: Added.
33358         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33359         (WebCore):
33360         (WebCore::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         (WebCore::GraphicsSurface::platformBeginPaint):
33368         (WebCore::GraphicsSurface::createReadOnlyImage):
33369         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33370         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33371         (WebCore):
33372         (OffScreenRootWindow):
33373         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33374         (GraphicsSurfacePrivate):
33375         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33376         (WebCore::GraphicsSurfacePrivate::createPixmap):
33377         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33378         (WebCore::GraphicsSurfacePrivate::display):
33379         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33380         (WebCore::GraphicsSurfacePrivate::size):
33381         (WebCore::GraphicsSurfacePrivate::glContext):
33382         (WebCore::resolveGLMethods):
33383         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33384         (WebCore):
33385         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33386         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33387         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33388         (WebCore::GraphicsSurfacePrivate::createSurface):
33389         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33390         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33391         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33392
33393 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33394
33395         Add feature flags for CSS Device Adaptation
33396         https://bugs.webkit.org/show_bug.cgi?id=95960
33397
33398         Reviewed by Kenneth Rohde Christiansen.
33399
33400         * Configurations/FeatureDefines.xcconfig:
33401         * GNUmakefile.am:
33402         * GNUmakefile.features.am:
33403
33404 2012-10-26  Li Yin  <li.yin@intel.com>
33405
33406         fast/forms/file/input-file-write-files.html should cover correct setting value
33407         https://bugs.webkit.org/show_bug.cgi?id=100085
33408
33409         Reviewed by Kentaro Hara.
33410
33411         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33412         On setting, if the new value is the empty string, it must empty the list of selected
33413         files; otherwise, it must throw an InvalidStateError exception.
33414
33415         Test: fast/forms/file/input-file-value.html
33416
33417         * html/HTMLInputElement.cpp:
33418         (WebCore::HTMLInputElement::setValue):
33419         (WebCore):
33420         * html/HTMLInputElement.h:
33421         (HTMLInputElement):
33422         * html/HTMLInputElement.idl:
33423
33424 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33425
33426         Refactor calendar picker to remove _x/_y from DaysTable
33427         https://bugs.webkit.org/show_bug.cgi?id=100460
33428
33429         Reviewed by Kent Tamura.
33430
33431         _x/_y properties keep the coordinates for the selection but when we add
33432         week and month picking capabilities, the selection can't be expressed as
33433         a set of coordinates. This change will remove it.
33434
33435         No new tests. Covered by calendar-picker-*.html tests.
33436
33437         * Resources/pagepopups/calendarPicker.js:
33438         (DaysTable): Removed _x/_y properties.
33439         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33440         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33441         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33442         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33443         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33444         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33445         (DaysTable.prototype._deselect): Deselects all selections.
33446         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33447         (DaysTable.prototype._handleMouseOut): Use _deselect.
33448         (DaysTable.prototype._handleKey): Lookup the selection position.
33449         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33450
33451 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33452
33453         FileReader abort case causes Chromium renderer crash
33454         https://bugs.webkit.org/show_bug.cgi?id=99142
33455
33456         Reviewed by Kentaro Hara.
33457
33458         Before dispatching load event, FileReader should check if it is
33459         in aborting.
33460
33461         Test: manually launch fast/files/file-reader-abort.html in Chromium
33462         browser and compare the result with
33463         fast/files/file-reader-abort-expected.txt.
33464
33465         * fileapi/FileReader.cpp:
33466         (WebCore::FileReader::didFinishLoading):
33467
33468 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33469
33470         Generate less repaint calls during subtree detaching
33471         https://bugs.webkit.org/show_bug.cgi?id=99741
33472
33473         Reviewed by Eric Seidel.
33474
33475         Following bug 98336, detach is now a subtree top-down operation. Because we
33476         track visual overflow from our children during layout for most cases, we can
33477         generate a repaint only on the subtree root.
33478
33479         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33480         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33481         it decreases the time by 35%. This is due to being the best case and we now generate
33482         only one repaint per detach phase.
33483
33484         Covered by existing pixels tests (including but not limited to repaint ones).
33485
33486         * rendering/RenderObject.cpp:
33487         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33488         Changed the function not to be recursive anymore to generate one painting for
33489         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33490         the cost of computing our absolute repaint rectangle.
33491
33492         * rendering/RenderObjectChildList.cpp:
33493         (WebCore::RenderObjectChildList::removeChildNode):
33494         Removed the logic for repainting in the general case. However we still force a repaint
33495         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33496         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33497         are properly accounted for in our clipppedOverflowRectForRepaint).
33498
33499 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33500
33501         local(Helvetica) in src descriptor prevent fallback
33502         https://bugs.webkit.org/show_bug.cgi?id=100446
33503
33504         Reviewed by Dan Bernstein.
33505
33506         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33507         of font family names, so that if the family name specified in the font-family
33508         property is not available on the system, but the its alias is available,
33509         it will be used instead. This is appropriate for the font-family property,
33510         but not for font family names specified in the local() function of the src
33511         descriptor in a @font-face rule.
33512
33513         This patch disables the mechanism while checking src descriptor of @font-face.
33514
33515         No new tests. It's difficult to test the change because 'Helvetica' can
33516         be mapped any other font. For example, chromium DRT uses FontConfig to
33517         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33518         fonts. We can't define the expected result.
33519
33520         * css/CSSFontFaceSource.cpp:
33521         (WebCore::CSSFontFaceSource::getFontData):
33522         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33523         This disables aliasing font family names in FontCache.
33524
33525 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33526
33527         Web Inspector: Doctype Audits panel code
33528         https://bugs.webkit.org/show_bug.cgi?id=100371
33529
33530         Reviewed by Alexander Pavlov.
33531
33532         This is a preparation step for ongoing refactoring.
33533         It is much easier to read doctyped code.
33534
33535         * inspector/front-end/AuditRules.js:
33536         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33537         Replaced "undefined" with "null"
33538         * inspector/front-end/AuditsPanel.js:
33539         (WebInspector.AuditCategory.prototype.callbackWrapper):
33540         Removed callback parameter indirection.        
33541         (WebInspector.AuditRuleResult.prototype.addFormatted):
33542         Converted private instance function to scoped function.
33543
33544 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33545
33546         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33547         https://bugs.webkit.org/show_bug.cgi?id=99445
33548
33549         Reviewed by Simon Hausmann.
33550
33551         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33552
33553         * platform/qt/CookieJarQt.cpp:
33554         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33555
33556 2012-10-26  Adam Barth  <abarth@webkit.org>
33557
33558         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33559
33560         * bindings/v8/V8DOMWrapper.h:
33561         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33562
33563 2012-10-26  Kent Tamura  <tkent@chromium.org>
33564
33565         [Chromium-Win] Support shortTimeFormat
33566         https://bugs.webkit.org/show_bug.cgi?id=100471
33567
33568         Reviewed by Kentaro Hara.
33569
33570         No new tests. Covered by fast/forms/time-multiple-fields/ and
33571         WebKit/chromium/tests/LocaleWinTest.
33572
33573         * platform/text/LocaleWin.cpp:
33574         (WebCore::LocaleWin::shortTimeFormat):
33575         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33576         from the format by LOCALE_STIMEFORMAT.
33577         * platform/text/LocaleWin.h:
33578         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33579
33580 2012-10-26  Adam Barth  <abarth@webkit.org>
33581
33582         Unreviewed. Update run-bindings-tests results after recent active DOM
33583         object changes.
33584
33585         * bindings/scripts/test/V8/V8TestInterface.cpp:
33586         (WebCore::V8TestInterface::constructorCallback):
33587         (WebCore::V8TestInterface::wrapSlow):
33588         * bindings/scripts/test/V8/V8TestInterface.h:
33589         (WebCore::V8TestInterface::wrap):
33590         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33591         (WebCore::V8TestNamedConstructorConstructorCallback):
33592         (WebCore::V8TestNamedConstructor::wrapSlow):
33593         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33594         (WebCore::V8TestNamedConstructor::wrap):
33595
33596 2012-10-26  MORITA Hajime  <morrita@google.com>
33597
33598         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33599         https://bugs.webkit.org/show_bug.cgi?id=100462
33600
33601         Reviewed by Adam Barth.
33602
33603         Removed the no longer correct assertion statement.
33604
33605         No new tests. Covered by breaking tests.
33606
33607         * bindings/v8/V8DOMWrapper.cpp:
33608         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33609
33610 2012-10-25  Adam Barth  <abarth@webkit.org>
33611
33612         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33613         https://bugs.webkit.org/show_bug.cgi?id=100443
33614
33615         Reviewed by Eric Seidel.
33616
33617         This class was manually re-implementing the ScopedPersistent pattern.
33618
33619         * bindings/v8/WorkerContextExecutionProxy.cpp:
33620         (WebCore::WorkerContextExecutionProxy::dispose):
33621         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33622         (WebCore::WorkerContextExecutionProxy::evaluate):
33623         * bindings/v8/WorkerContextExecutionProxy.h:
33624         (WebCore::WorkerContextExecutionProxy::context):
33625         (WorkerContextExecutionProxy):
33626
33627 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33628
33629         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33630         https://bugs.webkit.org/show_bug.cgi?id=100347
33631
33632         Reviewed by Mark Lam and Filip Pizlo.
33633
33634         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33635         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33636
33637         No new test case, since no behaviour changed.
33638
33639         * bindings/js/JavaScriptCallFrame.cpp:
33640         (WebCore::JavaScriptCallFrame::evaluate):
33641
33642 2012-10-25  Adam Barth  <abarth@webkit.org>
33643
33644         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33645         https://bugs.webkit.org/show_bug.cgi?id=100432
33646
33647         Reviewed by Eric Seidel.
33648
33649         Now that we use the same object to visit both DOM objects and active
33650         DOM objects, there's no reason to keep them in separate hash maps.
33651
33652         * bindings/scripts/CodeGeneratorV8.pm:
33653         (GetDomMapName):
33654         * bindings/v8/DOMDataStore.cpp:
33655         (WebCore::DOMDataStore::DOMDataStore):
33656         (WebCore::DOMDataStore::~DOMDataStore):
33657         (WebCore::DOMDataStore::reportMemoryUsage):
33658         * bindings/v8/DOMDataStore.h:
33659         (DOMDataStore):
33660         * bindings/v8/V8DOMMap.cpp:
33661         * bindings/v8/V8DOMMap.h:
33662         (NodeWrapperVisitor):
33663         (WebCore):
33664         * bindings/v8/V8DOMWrapper.h:
33665         (V8DOMWrapper):
33666         * bindings/v8/V8GCController.cpp:
33667         (WebCore::V8GCController::majorGCPrologue):
33668         * bindings/v8/custom/V8WebSocketCustom.cpp:
33669         (WebCore::V8WebSocket::constructorCallback):
33670         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33671         (WebCore::V8XMLHttpRequest::constructorCallback):
33672
33673 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33674
33675         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33676         https://bugs.webkit.org/show_bug.cgi?id=100448
33677
33678         Reviewed by George Staikos.
33679
33680         Internally reviewed by Joe Mason.
33681
33682         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33683
33684         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33685
33686         * platform/network/blackberry/NetworkJob.cpp:
33687         (WebCore::NetworkJob::sendRequestWithCredentials):
33688
33689 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33690
33691         IndexedDB: Add histogram statistics for backing store errors
33692         https://bugs.webkit.org/show_bug.cgi?id=98465
33693
33694         Reviewed by Adam Barth.
33695
33696         Define a macro for consistent asserting (during development), logging, and recording
33697         internal backing store errors via histograms. Define specific histogram values to
33698         track issues with opening backing stores to gather stats on corruption.
33699
33700         No new tests - just the stats, ma'am, just the stats.
33701
33702         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33703         (WebCore):
33704         (WebCore::setUpMetadata):
33705         (WebCore::IDBLevelDBBackingStore::open):
33706         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33707         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33708         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33709         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33710         (WebCore::deleteRange):
33711         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33712         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33713         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33714         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33715         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33716         (WebCore::IDBLevelDBBackingStore::getIndexes):
33717         (WebCore::IDBLevelDBBackingStore::createIndex):
33718         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33719         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33720
33721 2012-10-25  Adam Barth  <abarth@webkit.org>
33722
33723         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33724         https://bugs.webkit.org/show_bug.cgi?id=100430
33725
33726         Reviewed by Eric Seidel.
33727
33728         There's no reason for these visitors to be separate objects anymore.
33729
33730         * bindings/v8/V8GCController.cpp:
33731         (WebCore::ObjectVisitor::ObjectVisitor):
33732         (WebCore::ObjectVisitor::visitDOMWrapper):
33733         (WebCore::V8GCController::majorGCPrologue):
33734
33735 2012-10-25  Tony Chang  <tony@chromium.org>
33736
33737         Remove unused static methods from DOMTimer.h
33738         https://bugs.webkit.org/show_bug.cgi?id=100427
33739
33740         Reviewed by Kenneth Russell.
33741
33742         Since these values got moved into Settings, these methods are no longer called.
33743
33744         No new tests, removing dead code.
33745
33746         * page/DOMTimer.h:
33747         (DOMTimer): Remove unused getters.
33748
33749 2012-10-25  Leo Yang  <leoyang@rim.com>
33750
33751         [BlackBerry] Infinite redirect loop is not displayed to user
33752         https://bugs.webkit.org/show_bug.cgi?id=100420
33753
33754         Reviewed by George Staikos.
33755
33756         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33757         it my setting our extended error code as we defined. But we were not trying to notify
33758         error because we have received body. This was wrong. For extended http status code
33759         which is less than 0 we should display our own error page regardless there was data
33760         received from the server or not.
33761
33762         Tested by manually loading CNN.com.
33763
33764         * platform/network/blackberry/NetworkJob.cpp:
33765         (WebCore::NetworkJob::shouldNotifyClientFailed):
33766
33767 2012-10-25  Nico Weber  <thakis@chromium.org>
33768
33769         Flip ImageOrientation coordinate system from lefthanded to righthanded
33770         https://bugs.webkit.org/show_bug.cgi?id=100414
33771
33772         Reviewed by Eric Seidel.
33773
33774         platform/graphics, noteably GraphicsContext uses a right-handed
33775         coordinate system (origin in the top left corner, x growing to the
33776         right, y to the bottom).  ImageOrientation was an outlier from
33777         and used a left-handed coordinate system.  This patch makes
33778         ImageOrientation match the rest of platform/graphics.
33779
33780         This is a pure refactoring and has no observable effects.
33781
33782         * platform/chromium/DragImageChromiumSkia.cpp:
33783         (WebCore::createDragImageFromImage):
33784         * platform/graphics/ImageOrientation.cpp:
33785         (WebCore::ImageOrientation::transformFromDefault):
33786         * platform/graphics/cg/GraphicsContextCG.cpp:
33787         (WebCore::GraphicsContext::drawNativeImage):
33788         * platform/graphics/skia/ImageSkia.cpp:
33789         (WebCore::BitmapImage::draw):
33790         * platform/mac/DragImageMac.mm:
33791         (WebCore::createDragImageFromImage):
33792         * rendering/RenderObject.cpp:
33793         (WebCore::RenderObject::shouldRespectImageOrientation):
33794
33795 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33796
33797         Hide popup while transitioning from the suggestion picker to the calendar picker
33798         https://bugs.webkit.org/show_bug.cgi?id=99537
33799
33800         Reviewed by Kent Tamura.
33801
33802         Right now you can see a squished calendar picker while transitioning
33803         from suggestion picker from calendar picker. This change will hide the
33804         popup before opening the calendar picker.
33805
33806         No new tests.
33807
33808         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33809         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33810         * Resources/pagepopups/suggestionPicker.js:
33811         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33812
33813 2012-10-25  Anders Carlsson  <andersca@apple.com>
33814
33815         Fix build.
33816
33817         * page/mac/EventHandlerMac.mm:
33818         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33819
33820 2012-10-25  Anders Carlsson  <andersca@apple.com>
33821
33822         Remove feed and feeds URL scheme workarounds
33823         https://bugs.webkit.org/show_bug.cgi?id=100442
33824
33825         Reviewed by Dan Bernstein.
33826
33827         * dom/DocumentEventQueue.cpp:
33828         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33829         * page/mac/EventHandlerMac.mm:
33830         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33831
33832 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33833
33834         Unreviewed, rolling out r132514.
33835         http://trac.webkit.org/changeset/132514
33836         https://bugs.webkit.org/show_bug.cgi?id=100440
33837
33838         "Broke chromium content_browsertests AccessibilityAriaMenu
33839         AccessibilityInputRange AccessibilityListMarkers" (Requested
33840         by scheib on #webkit).
33841
33842         * accessibility/AXObjectCache.cpp:
33843         (WebCore::AXObjectCache::getOrCreate):
33844         (WebCore::AXObjectCache::contentChanged):
33845         (WebCore::AXObjectCache::childrenChanged):
33846         (WebCore::AXObjectCache::handleAriaRoleChanged):
33847         * accessibility/AXObjectCache.h:
33848         (AXObjectCache):
33849         (WebCore::AXObjectCache::contentChanged):
33850         * accessibility/AccessibilityObject.cpp:
33851         (WebCore::AccessibilityObject::AccessibilityObject):
33852         * accessibility/AccessibilityObject.h:
33853         (WebCore::AccessibilityObject::contentChanged):
33854         (AccessibilityObject):
33855         * accessibility/AccessibilityRenderObject.cpp:
33856         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33857         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33858         (WebCore::AccessibilityRenderObject::contentChanged):
33859         * accessibility/AccessibilityRenderObject.h:
33860         (AccessibilityRenderObject):
33861         * accessibility/AccessibilityScrollView.cpp:
33862         (WebCore::AccessibilityScrollView::isAttachment):
33863         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33864         (WebCore::AccessibilityScrollView::updateScrollbars):
33865         (WebCore::AccessibilityScrollView::webAreaObject):
33866         (WebCore::AccessibilityScrollView::elementRect):
33867         (WebCore::AccessibilityScrollView::documentFrameView):
33868         (WebCore::AccessibilityScrollView::parentObject):
33869         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33870         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33871         (WebCore::AccessibilityScrollView::scrollTo):
33872         * accessibility/AccessibilityScrollView.h:
33873         (WebCore::AccessibilityScrollView::scrollView):
33874         (AccessibilityScrollView):
33875         * accessibility/AccessibilityTable.cpp:
33876         (WebCore::AccessibilityTable::isDataTable):
33877         * accessibility/chromium/AXObjectCacheChromium.cpp:
33878         (WebCore::AXObjectCache::postPlatformNotification):
33879         * dom/Element.cpp:
33880         (WebCore::Element::attributeChanged):
33881         * rendering/RenderBlock.cpp:
33882         (WebCore::RenderBlock::deleteLineBoxTree):
33883         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33884         * rendering/RenderObject.cpp:
33885         (WebCore::RenderObject::styleWillChange):
33886         * rendering/RenderText.cpp:
33887         (WebCore::RenderText::setText):
33888
33889 2012-10-25  Dan Bernstein  <mitz@apple.com>
33890
33891         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33892         https://bugs.webkit.org/show_bug.cgi?id=100413
33893
33894         Reviewed by Anders Carlsson.
33895
33896         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33897         Sped up the Core Graphics implementation of this function considerably by removing an
33898         unnecessary call to CGContextGetClipBoundingBox.
33899
33900         * platform/graphics/cg/GraphicsContextCG.cpp:
33901         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33902         box of the current clip.
33903
33904 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33905
33906         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33907         https://bugs.webkit.org/show_bug.cgi?id=100433
33908         <rdar://problem/12575582>
33909
33910         Reviewed by Simon Fraser.
33911
33912         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33913         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33914         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33915         notion of its current position, but never synchronizing that to the layer itself.
33916
33917         No new tests, as this is currently untestable.
33918
33919         * page/scrolling/ScrollingCoordinator.cpp:
33920         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33921
33922 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33923
33924         Tiled layers are missing content on zooming
33925         https://bugs.webkit.org/show_bug.cgi?id=100422
33926
33927         Reviewed by Beth Dakin.
33928
33929         Tiled layers using TileCaches were missing content after
33930         zooming. TileCache was confused in the presence of scaling;
33931         it unapplies the scale on the layer above the tiles (so the tiles
33932         live in screen space), and computed the tile coverage rect
33933         in these tile coordinates. This worked for the page tile cache,
33934         because its visibleRect was sent in pre-scaled. However, for
33935         tiled layer TileCaches this was wrong.
33936         
33937         Fix by scaling the tile coverage rect by m_scale before
33938         using it to compute which tiles to throw away and bring in.
33939         
33940         To fix the problem of the visibleRect being pre-scaled
33941         for the page tile cache, remove the setting of the visibleRect
33942         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33943         GraphicsLayerCA::updateVisibleRect() which computes the
33944         visible rect in the correct, layer coordinates.
33945
33946         Test: compositing/tiling/tile-cache-zoomed.html
33947
33948         * platform/graphics/ca/GraphicsLayerCA.cpp:
33949         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33950         for all tile cache layers, not just tiled layer ones, but only do
33951         the visible rect adjustment for those that are not the page tile cache.
33952         * platform/graphics/ca/mac/TileCache.mm:
33953         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33954         which is scaled to be in the same coordinate space as the tile grid.
33955         * rendering/RenderLayerCompositor.cpp:
33956         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33957         that sets the setVisibleRect() on the TiledBacking.
33958
33959 2012-10-25  Adam Barth  <abarth@webkit.org>
33960
33961         [V8] ActiveDOMNodes no longer require a separate wrapper map
33962         https://bugs.webkit.org/show_bug.cgi?id=100352
33963
33964         Reviewed by Eric Seidel.
33965
33966         There is no longer any reason to keep a separate DOM wrapper map for
33967         active DOM nodes. We can simply store them in the normal DOM node
33968         wrapper map (which is more efficient because it doesn't use a HashMap).
33969
33970         * bindings/scripts/CodeGeneratorV8.pm:
33971         (GetDomMapName):
33972         * bindings/v8/DOMDataStore.cpp:
33973         (WebCore::DOMDataStore::DOMDataStore):
33974         (WebCore::DOMDataStore::~DOMDataStore):
33975         (WebCore::DOMDataStore::reportMemoryUsage):
33976         * bindings/v8/DOMDataStore.h:
33977         (DOMDataStore):
33978         * bindings/v8/IntrusiveDOMWrapperMap.h:
33979         * bindings/v8/V8DOMMap.cpp:
33980         * bindings/v8/V8DOMMap.h:
33981         (WebCore):
33982         * bindings/v8/V8DOMWrapper.cpp:
33983         * bindings/v8/V8DOMWrapper.h:
33984         (V8DOMWrapper):
33985         (WebCore::V8DOMWrapper::getCachedWrapper):
33986
33987 2012-10-25  Tony Chang  <tony@chromium.org>
33988
33989         Unreviewed, fix the build on Mac.
33990
33991         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
33992         Instead, put the implementation in the cpp file.
33993
33994         * page/Settings.cpp:
33995         (WebCore::Settings::defaultMinDOMTimerInterval):
33996         (WebCore):
33997         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
33998         * page/Settings.h:
33999         (Settings):
34000
34001 2012-10-25  Tony Chang  <tony@chromium.org>
34002
34003         Move default DOM Timer values into Settings
34004         https://bugs.webkit.org/show_bug.cgi?id=100405
34005
34006         Reviewed by Kenneth Russell.
34007
34008         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
34009         the Settings object. This is more consistent with other global settings and allows us to remove
34010         the setters on the DOMTimer object.
34011
34012         No new tests, this is a refactor.
34013
34014         * page/DOMTimer.cpp: Remove globals.
34015         * page/DOMTimer.h:
34016         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
34017         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
34018         (DOMTimer): Remove setters.
34019         * page/Settings.cpp:
34020         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
34021         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
34022         * page/Settings.h:
34023         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
34024         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
34025         (Settings): Add globals.
34026
34027 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34028
34029         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
34030         https://bugs.webkit.org/show_bug.cgi?id=100416
34031
34032         Reviewed by Beth Dakin.
34033
34034         The tileCoverageRect is computed in "tile" coordinates, which don't match
34035         the visibleRect coordinates. It's more useful when testing to see the
34036         tile coverage relative to the view bounds, so unapply the scale whem
34037         reporting tile coverage in tests.
34038
34039         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
34040                platform/mac/tiled-drawing/tiled-drawing-zoom.html
34041
34042         * platform/graphics/ca/mac/TileCache.h:
34043         * platform/graphics/ca/mac/TileCache.mm:
34044         (WebCore::TileCache::tileCoverageRect):
34045
34046 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
34047
34048         Unreviewed, rolling out r132269.
34049         http://trac.webkit.org/changeset/132269
34050         https://bugs.webkit.org/show_bug.cgi?id=100412
34051
34052         "Speculative rollout of r132269 in hopes of fixing a
34053         mysterious recalcStyle crasher" (Requested by eseidel on
34054         #webkit).
34055
34056         * rendering/RenderBlock.cpp:
34057         (WebCore::RenderBlock::updateFirstLetter):
34058         * rendering/RenderListBox.h:
34059         * rendering/RenderObjectChildList.cpp:
34060         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
34061
34062 2012-10-25  Stephen White  <senorblanco@chromium.org>
34063
34064         Change ReferenceFilterOperations to reference (own) the data passed to
34065         them.
34066         https://bugs.webkit.org/show_bug.cgi?id=97715
34067
34068         Reviewed by Nate Chapin.
34069
34070         Covered by css3/filters/reference-filter-update-after-remove.html
34071
34072         * css/CachedSVGDocumentReference.h: Added.
34073         (CachedSVGDocumentReference):
34074         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
34075         can be placed in ReferenceFilterOperation's Data.  It also calls
34076         addClient() / removeClient(), in order to keep the CachedSVGDocument
34077         alive until the FilterEffectRenderer can get it.
34078         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
34079         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
34080         (WebCore::CachedSVGDocumentReference::document):
34081         Accessor for the underlying document.
34082         * css/StyleResolver.cpp:
34083         (WebCore::StyleResolver::loadPendingSVGDocuments):
34084         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
34085         transfer ownership to the ReferenceFilterOperation.
34086         (WebCore::StyleResolver::createFilterOperations):
34087         Same as above.
34088         * platform/graphics/filters/FilterOperation.h:
34089         (Data):
34090         New base class for generic data which can be deleted polymorphically.
34091         (WebCore::FilterOperation::ReferenceFilterOperation::data):
34092         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
34093         Use the above-mentioned Data class, instead of a void *.
34094         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
34095         Don't initialize data to null; OwnPtr will do that for us.
34096         * rendering/FilterEffectRenderer.cpp:
34097         (WebCore::FilterEffectRenderer::buildReferenceFilter):
34098         Extract the cached SVG document from the reference data.
34099         * rendering/RenderLayerFilterInfo.cpp:
34100         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34101         Extract the cached SVG document from the reference data.
34102
34103 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34104
34105         Incorrect tile size in the slow scrolling case
34106         https://bugs.webkit.org/show_bug.cgi?id=100411
34107
34108         Reviewed by Beth Dakin.
34109
34110         If we're in slow scrolling mode, we don't want to inflate the
34111         coverage rect based on scrollability. This ensures that the few
34112         big tiles we create have the correct size.
34113
34114         * platform/graphics/ca/mac/TileCache.mm:
34115         (WebCore::TileCache::computeTileCoverageRect):
34116
34117 2012-10-25  Nico Weber  <thakis@chromium.org>
34118
34119         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34120         https://bugs.webkit.org/show_bug.cgi?id=100401
34121
34122         Reviewed by Eric Seidel.
34123
34124         This is an alternative fix for the regression caused by r132384 / bug
34125         100179. The bug exists because different pieces of code didn't agree
34126         which space the transformation returned by ImageOrientation was in.
34127
34128         r132384 moved it from CG coordinates to skia coordinates, but didn't
34129         do it completetely. This CL reverts this part of r132384 so that the
34130         transformation is in CG coordinates again, and adapts the skia code to
34131         work in that space.
34132
34133         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34134         make the cg code work with the transform in skia coordinates.
34135
34136         Covered by fast/images/exif-orientation.html
34137
34138         * platform/chromium/DragImageChromiumSkia.cpp:
34139         (WebCore::createDragImageFromImage):
34140         * platform/graphics/ImageOrientation.cpp:
34141         (WebCore::ImageOrientation::transformFromDefault):
34142         * platform/graphics/ImageOrientation.h:
34143         (WebCore):
34144         (WebCore::ImageOrientation::usesWidthAsHeight):
34145         (WebCore::ImageOrientation::fromEXIFValue):
34146         (ImageOrientation):
34147         * platform/graphics/cg/GraphicsContextCG.cpp:
34148         (WebCore::GraphicsContext::drawNativeImage):
34149         * platform/graphics/skia/ImageSkia.cpp:
34150         (WebCore::BitmapImage::draw):
34151         * platform/mac/DragImageMac.mm:
34152         (WebCore::createDragImageFromImage):
34153         * rendering/RenderObject.cpp:
34154         (WebCore::RenderObject::shouldRespectImageOrientation):
34155
34156 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34157
34158         Log the tile cache tile size in test output
34159         https://bugs.webkit.org/show_bug.cgi?id=100409
34160
34161         Reviewed by Beth Dakin.
34162
34163         When dumping tile cache information in tests, also dump the tile size.
34164
34165         * platform/graphics/TiledBacking.h:
34166         * platform/graphics/ca/GraphicsLayerCA.cpp:
34167         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34168         * platform/graphics/ca/mac/TileCache.h:
34169
34170 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34171
34172         do not multiply/demultiply colors when alpha is 255
34173         https://bugs.webkit.org/show_bug.cgi?id=89246
34174
34175         Reviewed by Kenneth Rohde Christiansen.
34176
34177         Do not use colorFromPremultipliedARGB in getImageData nor
34178         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34179         and function call make canvas.getImageData about 10% faster and
34180         canvas.putImageData about 30% faster.
34181
34182         Also, we avoid multiplication/demultiplication computation when alpha
34183         is 255. Result is the same, but when there is no transparency,
34184         canvas.getImageData is about 4x faster, and canvas.putImageData is
34185         about 2x faster.
34186
34187         No new tests. No change in behavior.
34188
34189         * platform/graphics/cairo/ImageBufferCairo.cpp:
34190         (WebCore::getImageData):
34191         (WebCore::ImageBuffer::putByteArray):
34192
34193 2012-10-25  Nate Chapin  <japhet@chromium.org>
34194
34195         Add a main resource type to the memory cache
34196         https://bugs.webkit.org/show_bug.cgi?id=99864
34197
34198         Reviewed by Adam Barth.
34199
34200         No new tests, no functionality change.
34201
34202         * inspector/InspectorPageAgent.cpp:
34203         (WebCore::hasTextContent):
34204         (WebCore::InspectorPageAgent::cachedResourceType):
34205         * loader/SubresourceLoader.cpp:
34206         (WebCore::SubresourceLoader::willSendRequest):
34207         (WebCore::SubresourceLoader::didReceiveResponse):
34208         (WebCore::SubresourceLoader::didFail):
34209         * loader/cache/CachedRawResource.cpp:
34210         (WebCore::CachedRawResource::CachedRawResource):
34211         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34212         (WebCore):
34213         (WebCore::CachedRawResource::setShouldBufferData):
34214         (WebCore::CachedRawResource::loader):
34215         (WebCore::CachedRawResource::clear):
34216         * loader/cache/CachedRawResource.h:
34217         (WebCore):
34218         (CachedRawResource):
34219         * loader/cache/CachedResource.cpp:
34220         (WebCore::defaultPriorityForResourceType):
34221         (WebCore::cachedResourceTypeToTargetType):
34222         (WebCore::CachedResource::updateResourceRequest):
34223         (WebCore):
34224         * loader/cache/CachedResource.h:
34225         (WebCore::CachedResource::setResourceError):
34226         (WebCore::CachedResource::resourceError):
34227         (CachedResource):
34228         (WebCore::CachedResource::ignoreForRequestCount):
34229         * loader/cache/CachedResourceLoader.cpp:
34230         (WebCore::createResource):
34231         (WebCore::CachedResourceLoader::requestRawResource):
34232         (WebCore::CachedResourceLoader::checkInsecureContent):
34233         (WebCore::CachedResourceLoader::canRequest):
34234         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34235         * loader/cache/CachedResourceLoader.h:
34236         (CachedResourceLoader):
34237         * platform/network/ResourceLoadPriority.h:
34238         * platform/network/cf/ResourceRequestCFNet.h:
34239         (WebCore::toResourceLoadPriority):
34240         (WebCore::toHTTPPipeliningPriority):
34241
34242 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34243
34244         [V8] Add histograms to measure V8 work done during window close and navigation
34245         https://bugs.webkit.org/show_bug.cgi?id=100358
34246
34247         Reviewed by Adam Barth.
34248
34249         * bindings/v8/ScriptController.cpp:
34250         (WebCore::ScriptController::clearForClose):
34251         (WebCore::ScriptController::clearWindowShell):
34252
34253 2012-10-25  Antti Koivisto  <antti@apple.com>
34254
34255         Avoid unnecessary style recalcs on id attribute mutation.
34256         https://bugs.webkit.org/show_bug.cgi?id=100395
34257
34258         Reviewed by Andreas Kling.
34259
34260         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34261         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34262         
34263         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34264
34265         * css/StyleResolver.cpp:
34266         (WebCore::StyleResolver::hasSelectorForId):
34267         (WebCore):
34268         * css/StyleResolver.h:
34269         * dom/Element.cpp:
34270         (WebCore::makeIdForStyleResolution):
34271         (WebCore):
34272         (WebCore::Element::attributeChanged):
34273
34274 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34275
34276         AX: Notification should be sent when accessibilityIsIgnored changes
34277         https://bugs.webkit.org/show_bug.cgi?id=99547
34278
34279         Reviewed by Chris Fleizach.
34280
34281         Adds a new flag in AccessibilityObject that keeps track of the most recent
34282         value of accessibilityIsIgnored(). After certain events such as an ARIA
34283         attribute change or content change, checks the new value of
34284         accessibilityIsIgnored() and posts a "children changed" notification on the
34285         parent node if it changed, making sure the parent recomputes its vector of
34286         (unignored) children.
34287
34288         Also moves handling of attribute changes to AXObjectCache, and sends
34289         notifications for some attribute changes that were previously silent. On
34290         Chromium, all changes to an accessibility object's attributes should
34291         result in some notification.
34292
34293         Some tests would have broken because an AccessibilityScrollView was created
34294         and holding a reference to a ScrollView for an iframe after it was deleted,
34295         so this change switches AccessibilityScrollView to hold a weak reference
34296         to ScrollView instead.
34297
34298         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34299                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34300                platform/chromium/accessibility/text-change-notification.html
34301
34302         * accessibility/AXObjectCache.cpp:
34303         (WebCore::AXObjectCache::focusedUIElementForPage):
34304         (WebCore::AXObjectCache::getOrCreate):
34305         (WebCore::AXObjectCache::textChanged):
34306         (WebCore):
34307         (WebCore::AXObjectCache::childrenChanged):
34308         (WebCore::AXObjectCache::handleAriaRoleChanged):
34309         (WebCore::AXObjectCache::handleAttributeChanged):
34310         (WebCore::AXObjectCache::labelChanged):
34311         (WebCore::AXObjectCache::recomputeIsIgnored):
34312         * accessibility/AXObjectCache.h:
34313         (AXObjectCache):
34314         (WebCore::AXObjectCache::childrenChanged):
34315         (WebCore::AXObjectCache::textChanged):
34316         (WebCore::AXObjectCache::handleAttributeChanged):
34317         (WebCore::AXObjectCache::recomputeIsIgnored):
34318         * accessibility/AccessibilityNodeObject.cpp:
34319         (WebCore::AccessibilityNodeObject::insertChild):
34320         * accessibility/AccessibilityObject.cpp:
34321         (WebCore::AccessibilityObject::AccessibilityObject):
34322         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34323         (WebCore):
34324         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34325         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34326         * accessibility/AccessibilityObject.h:
34327         (WebCore::AccessibilityObject::textChanged):
34328         (AccessibilityObject):
34329         * accessibility/AccessibilityRenderObject.cpp:
34330         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34331         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34332         (WebCore::AccessibilityRenderObject::textChanged):
34333         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34334         (WebCore::AccessibilityRenderObject::addChildren):
34335         * accessibility/AccessibilityRenderObject.h:
34336         (AccessibilityRenderObject):
34337         * accessibility/AccessibilityScrollView.cpp:
34338         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34339         (WebCore):
34340         (WebCore::AccessibilityScrollView::detach):
34341         (WebCore::AccessibilityScrollView::isAttachment):
34342         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34343         (WebCore::AccessibilityScrollView::updateScrollbars):
34344         (WebCore::AccessibilityScrollView::webAreaObject):
34345         (WebCore::AccessibilityScrollView::elementRect):
34346         (WebCore::AccessibilityScrollView::documentFrameView):
34347         (WebCore::AccessibilityScrollView::parentObject):
34348         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34349         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34350         (WebCore::AccessibilityScrollView::scrollTo):
34351         * accessibility/AccessibilityScrollView.h:
34352         (WebCore::AccessibilityScrollView::scrollView):
34353         (AccessibilityScrollView):
34354         * accessibility/AccessibilityTable.cpp:
34355         (WebCore::AccessibilityTable::isDataTable):
34356         * accessibility/chromium/AXObjectCacheChromium.cpp:
34357         (WebCore::AXObjectCache::postPlatformNotification):
34358         * dom/Element.cpp:
34359         (WebCore::Element::attributeChanged):
34360         * rendering/RenderBlock.cpp:
34361         (WebCore::RenderBlock::deleteLineBoxTree):
34362         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34363         * rendering/RenderObject.cpp:
34364         (WebCore::RenderObject::styleWillChange):
34365         * rendering/RenderText.cpp:
34366         (WebCore::RenderText::setText):
34367
34368 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34369
34370         Conditionalize XHR timeout support
34371         https://bugs.webkit.org/show_bug.cgi?id=100356
34372
34373         Reviewed by Adam Barth.
34374
34375         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34376         network backend support for setTimeoutInterval.
34377
34378         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34379
34380         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34381         * GNUmakefile.am:
34382         * GNUmakefile.features.am:
34383           Autotools support for the flag.
34384         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34385         (WebCore::XMLHttpRequest::XMLHttpRequest):
34386         (WebCore):
34387         (WebCore::XMLHttpRequest::open):
34388         (WebCore::XMLHttpRequest::createRequest):
34389         (WebCore::XMLHttpRequest::didFail):
34390         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34391         (XMLHttpRequest):
34392         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34393
34394 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34395
34396         XSSAuditor must replace form action with about:blank when reflected action detected.
34397         https://bugs.webkit.org/show_bug.cgi?id=100280
34398
34399         Reviewed by Daniel Bates.
34400
34401         Changes empty string form-action replacement to about:blank.
34402         Existing form-action.html test modified to check this case.
34403         
34404         * html/parser/XSSAuditor.cpp:
34405         (WebCore::XSSAuditor::filterFormToken):
34406
34407 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34408
34409         Touch adjustment snaps to wrong target at a plugin boundary.
34410         https://bugs.webkit.org/show_bug.cgi?id=99938
34411
34412         Reviewed by Antonio Gomes.
34413
34414         Inidcate that an <embed> element can respond to
34415         mouse click events, since mouse events are forwarded
34416         to the plugin.  Fixes touch adjustment at a plugin
34417         boundary.  Prior to the patch a clickable element 
34418         adjacent to the plugin would capture synthetic mouse
34419         events from tap gestures that spanned the plugin
34420         boundary.
34421
34422         Test: touchadjustment/plugin.html
34423
34424         * html/HTMLEmbedElement.cpp:
34425         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34426         (WebCore):
34427         * html/HTMLEmbedElement.h:
34428
34429 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34430
34431         Get rid of ScriptController::clearForNavigation
34432         https://bugs.webkit.org/show_bug.cgi?id=100390
34433
34434         Reviewed by Adam Barth.
34435
34436         Get rid of clearForNavigation and change resetIsolatedWorlds
34437         to reset so that it can also do the hintForCollectGarbage call.
34438         No new tests. No behavior change.
34439
34440         * bindings/v8/ScriptController.cpp:
34441         (WebCore::ScriptController::reset):
34442         (WebCore::ScriptController::clearForClose):
34443         (WebCore::ScriptController::clearWindowShell):
34444         * bindings/v8/ScriptController.h:
34445         (ScriptController):
34446
34447 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34448
34449         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34450         https://bugs.webkit.org/show_bug.cgi?id=100323
34451
34452         Reviewed by Anders Carlsson.
34453
34454         r132427 assumed that TileCaches were only used for the page, and changed the tile
34455         size behavior of all non-page TileCaches.
34456         
34457         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34458         affects the tile size behavior.
34459         
34460         Consolidated the two places that set TileCoverage into one, and in the process
34461         reduced FrameView's direct communication with TiledBacking.
34462
34463         No new tests because we can't test tile size via tests.
34464
34465         * page/FrameView.cpp:
34466         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34467         call setIsInWindow() on the main page tile cache.
34468         (WebCore::FrameView::willMoveOffscreen): Ditto.
34469         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34470         the TiledBacking that it should do stuff, just tell the compositor that
34471         layout happened.
34472         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34473         * platform/graphics/ca/mac/TileCache.mm:
34474         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34475         if the CoverageForSlowScrolling flag is set.
34476         * rendering/RenderLayerBacking.cpp:
34477         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34478         is equivalent to renderer()->isRenderView() and clearer.
34479         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34480         It would be nice to move the rest of this TiledBacking code from here somehow.
34481         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34482         flags, taking into account horizontal and vertical scrollability independently,
34483         and whether we're in slow scrolling mode.
34484         * rendering/RenderLayerBacking.h:
34485         (RenderLayerBacking):
34486         * rendering/RenderLayerCompositor.cpp:
34487         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34488         tiled backing update it's coverage flags.
34489         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34490         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34491         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34492         * rendering/RenderLayerCompositor.h:
34493         (RenderLayerCompositor):
34494
34495 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34496
34497         Everything that sets RenderObject::m_style should go through setStyleInternal
34498         https://bugs.webkit.org/show_bug.cgi?id=100338
34499
34500         Reviewed by Ojan Vafai.
34501
34502         Whenever we set m_style in RenderObject go through setStyleInternal and make
34503         it inline. This gives a common place to put printfs and makes the code cleaner.
34504
34505         No new tests, just a refactor.
34506
34507         * rendering/RenderObject.cpp:
34508         (WebCore::RenderObject::createObject):
34509         (WebCore::RenderObject::setStyle):
34510         * rendering/RenderObject.h:
34511         (WebCore::RenderObject::setStyleInternal):
34512
34513 2012-10-25  Brady Eidson  <beidson@apple.com>
34514
34515         Allow LoaderStrategy to override the ResourceLoadScheduler
34516         https://bugs.webkit.org/show_bug.cgi?id=100355
34517
34518         Reviewed by Anders Carlsson.
34519
34520         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34521         Add a default implementation that just returns the current ResourceLoadScheduler.
34522
34523         No new tests (No behavior change).
34524
34525         Project file stuff:
34526         * CMakeLists.txt:
34527         * GNUmakefile.list.am:
34528         * Target.pri:
34529         * WebCore.exp.in:
34530         * WebCore.gypi:
34531         * WebCore.vcproj/WebCore.vcproj:
34532         * WebCore.xcodeproj/project.pbxproj:
34533
34534         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34535         * loader/ResourceLoadScheduler.cpp:
34536         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34537         * loader/ResourceLoadScheduler.h:
34538         (ResourceLoadScheduler):
34539
34540         Add the new method plus a default implementation:
34541          * loader/LoaderStrategy.cpp: 
34542         (WebCore::LoaderStrategy::resourceLoadScheduler):
34543         * loader/LoaderStrategy.h:
34544
34545         When strategies are enabled, use the LoaderStrategy for this:
34546         * dom/ContainerNode.cpp:
34547         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34548         (WebCore::ContainerNode::resumePostAttachCallbacks):
34549
34550         * loader/MainResourceLoader.cpp:
34551         (WebCore::MainResourceLoader::loadNow):
34552
34553         * loader/ResourceLoader.cpp:
34554         (WebCore::ResourceLoader::releaseResources):
34555         (WebCore::ResourceLoader::willSendRequest):
34556
34557         * loader/cache/CachedResource.cpp:
34558         (WebCore::CachedResource::load):
34559
34560         * loader/cache/CachedResourceLoader.cpp:
34561         (WebCore::CachedResourceLoader::performPostLoadActions):
34562
34563 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34564
34565         Web Inspector: inspector tests failing after r132454
34566         https://bugs.webkit.org/show_bug.cgi?id=100381
34567
34568         Reviewed by Pavel Feldman.
34569
34570         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34571         otherwise no actual pointer is reported which breaks instrumentation.
34572
34573         * bindings/v8/IntrusiveDOMWrapperMap.h:
34574
34575 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34576
34577         Init timeout flag in ResourceErrorCF
34578         https://bugs.webkit.org/show_bug.cgi?id=100349
34579
34580         Reviewed by Alexey Proskuryakov.
34581
34582         Initialize the timeout property to true if the network error was a timeout error.
34583         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34584         I can't verify this on a local machine.
34585
34586         No new tests, covered by
34587         LayoutTests/http/tests/xmlhttprequest/timeout/*
34588
34589         * platform/network/cf/ResourceErrorCF.cpp:
34590         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34591
34592 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34593
34594         'resolution' MQ: Printing should use use high resolution images when available
34595         https://bugs.webkit.org/show_bug.cgi?id=100382
34596
34597         Reviewed by Antti Koivisto.
34598
34599         Special case print to not use the dpi of the screen, but one of 300.
34600
34601         Updated the resolution media query test to cover this.
34602
34603         * css/MediaQueryEvaluator.cpp:
34604         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34605         to three, due to 300 / 96 being equal to 3.125.
34606
34607 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34608
34609         [chromium] External FileSystem should use the root path returned by requestFileSystem
34610         https://bugs.webkit.org/show_bug.cgi?id=100372
34611
34612         Reviewed by Kentaro Hara.
34613
34614         External FileSystem should use the root path returned by
34615         requestFileSystem as other type is doing. Current implementation
34616         completely ignore the returned path.
34617
34618         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34619
34620         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34621         (WebCore::DOMFileSystemBase::createFileSystemURL):
34622
34623 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34624
34625         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34626         https://bugs.webkit.org/show_bug.cgi?id=97576
34627
34628         Reviewed by Antonio Gomes.
34629
34630         Consolidate touch adjustment candidates that are
34631         editable.  Adjustment becomes coarse being based
34632         on the bounds of the outermost editable element.
34633         This fix allows tap positioning of the text caret
34634         on a blank line immediately above or below another
34635         element.
34636
34637         Test: touchadjustment/editable-content.html
34638
34639         * page/TouchAdjustment.cpp:
34640         (WebCore::TouchAdjustment::compileSubtargetList):
34641         (WebCore::TouchAdjustment::hybridDistanceFunction):
34642
34643 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34644
34645         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34646         https://bugs.webkit.org/show_bug.cgi?id=100091
34647
34648         Reviewed by Pavel Feldman.
34649
34650         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34651         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34652         rather than as a standalone memory block.
34653
34654         * platform/graphics/ImageObserver.h:
34655         (ImageObserver):
34656
34657 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34658
34659         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34660         https://bugs.webkit.org/show_bug.cgi?id=100375
34661
34662         Reviewed by Yury Semikhatsky.
34663
34664         No new tests, a UI change.
34665
34666         * English.lproj/localizedStrings.js:
34667         * inspector/front-end/SettingsScreen.js:
34668         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34669
34670 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34671
34672         Add setMediaTypeOverride to window.internals.settings
34673         https://bugs.webkit.org/show_bug.cgi?id=100249
34674
34675         Reviewed by Kenneth Rohde Christiansen.
34676
34677         Added setMediaTypeOverride to window.internals.settings.
34678
34679         Test: fast/media/print-restores-previous-mediatype.html
34680
34681         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34682         * page/Settings.cpp:
34683         (WebCore::Settings::Settings):
34684         (WebCore::Settings::setMediaTypeOverride):
34685         (WebCore):
34686         * page/Settings.h:
34687         (Settings):
34688         (WebCore::Settings::mediaTypeOverride):
34689         * testing/InternalSettings.cpp:
34690         (WebCore::InternalSettings::Backup::Backup):
34691         (WebCore::InternalSettings::Backup::restoreTo):
34692         (WebCore::InternalSettings::setMediaTypeOverride):
34693         (WebCore):
34694         * testing/InternalSettings.h:
34695         (Backup):
34696         (InternalSettings):
34697         * testing/InternalSettings.idl:
34698
34699 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34700
34701         [Chromium] Add supportMultipleWindows setting, needed for Android
34702         https://bugs.webkit.org/show_bug.cgi?id=99716
34703
34704         Reviewed by Adam Barth.
34705
34706         Add supportMultipleWindows settings for reusing the same view when
34707         opening popups. This is required for emulating the behavior of
34708         Android WebView. Adding into WebCore, as other ports might want to
34709         use this setting in the future.
34710
34711         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34712                fast/dom/Window/window-open-no-multiple-windows.html
34713                fast/forms/post-popup-no-multiple-windows.html
34714
34715         * loader/FrameLoader.cpp:
34716         (WebCore::createWindow):
34717         * page/ContextMenuController.cpp:
34718         (WebCore::openNewWindow):
34719         * page/Settings.cpp:
34720         (WebCore::Settings::Settings):
34721         (WebCore::Settings::setSupportsMultipleWindows):
34722         (WebCore):
34723         * page/Settings.h:
34724         (Settings):
34725         (WebCore::Settings::supportsMultipleWindows):
34726
34727 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34728
34729         Unreviewed, fix Web Inspector frontend compilability
34730
34731         * inspector/front-end/ElementsTreeOutline.js:
34732         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34733         * inspector/front-end/StylesSidebarPane.js:
34734         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34735         (WebInspector.StylePropertyTreeElement.prototype):
34736
34737 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34738
34739         Web Inspector: Drag and drop property value from Inspector is not working as expected
34740         https://bugs.webkit.org/show_bug.cgi?id=100040
34741
34742         Reviewed by Vsevolod Vlasov.
34743
34744         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34745
34746         * inspector/front-end/ElementsTreeOutline.js:
34747         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34748
34749 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34750
34751         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34752         https://bugs.webkit.org/show_bug.cgi?id=100340
34753
34754         Reviewed by Yury Semikhatsky.
34755
34756         * dom/WebCoreMemoryInstrumentation.cpp:
34757         (WebCore):
34758         * dom/WebCoreMemoryInstrumentation.h:
34759         (WebCoreMemoryTypes):
34760         * inspector/InspectorDebuggerAgent.cpp:
34761         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34762         (WebCore):
34763         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34764         * inspector/InspectorDebuggerAgent.h:
34765         (InspectorDebuggerAgent):
34766         * inspector/ScriptDebugListener.h:
34767         (Script):
34768
34769 2012-10-25  Adam Barth  <abarth@webkit.org>
34770
34771         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34772         https://bugs.webkit.org/show_bug.cgi?id=100351
34773
34774         Reviewed by Eric Seidel.
34775
34776         There is no reason to handle active DOM nodes in a separate pass from
34777         regular DOM nodes anymore.
34778
34779         * bindings/v8/V8DOMMap.cpp:
34780         * bindings/v8/V8DOMMap.h:
34781         (WebCore):
34782         * bindings/v8/V8GCController.cpp:
34783         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34784         (WebCore::NodeVisitor::NodeVisitor):
34785         (NodeVisitor):
34786         (WebCore::NodeVisitor::visitNodeWrapper):
34787         (WebCore::V8GCController::majorGCPrologue):
34788
34789 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34790
34791         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34792         https://bugs.webkit.org/show_bug.cgi?id=100357
34793
34794         Reviewed by Vsevolod Vlasov.
34795
34796         * inspector/InspectorStyleSheet.cpp:
34797         (WebCore::InspectorStyleSheet::deleteRule):
34798
34799 2012-10-25  Adam Barth  <abarth@webkit.org>
34800
34801         [V8] DOMDataStoreHandle serves no purpose and can be removed
34802         https://bugs.webkit.org/show_bug.cgi?id=100333
34803
34804         Reviewed by Eric Seidel.
34805
34806         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34807         DOMDataStoreHandle is just a glorified OwnPtr.
34808
34809         * bindings/v8/DOMWrapperWorld.h:
34810         (WebCore::DOMWrapperWorld::domDataStore):
34811         (DOMWrapperWorld):
34812         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34813         * bindings/v8/V8DOMMap.cpp:
34814         * bindings/v8/V8DOMMap.h:
34815
34816 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34817
34818         Remove dead Node::isBlockFlowOrBlockTable
34819         https://bugs.webkit.org/show_bug.cgi?id=100336
34820
34821         Reviewed by Eric Seidel.
34822
34823         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34824
34825         No new tests needed, just removing dead code.
34826
34827         * dom/Node.cpp:
34828         * dom/Node.h:
34829         (Node):
34830
34831 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34832
34833         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34834         https://bugs.webkit.org/show_bug.cgi?id=100090
34835
34836         Reviewed by Vsevolod Vlasov.
34837
34838         Fixed localized strings table.
34839
34840         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34841         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34842         * inspector/front-end/NativeMemorySnapshotView.js:
34843         Removed double localization.
34844
34845 2012-10-25  Adam Barth  <abarth@webkit.org>
34846
34847         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34848         https://bugs.webkit.org/show_bug.cgi?id=100316
34849
34850         Reviewed by Eric Seidel.
34851
34852         Prior to this patch, DOMDataStore had two subclasses,
34853         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34854         wrapper map base classes and had different lifetimes. This patch
34855         unifies all these classes into DOMDataStore itself. This makes this
34856         code much more straightforward.
34857
34858         * WebCore.gypi:
34859         * bindings/v8/DOMDataStore.cpp:
34860         (WebCore::DOMDataStore::DOMDataStore):
34861         (WebCore::DOMDataStore::~DOMDataStore):
34862         (WebCore::DOMDataStore::current):
34863         (WebCore::DOMDataStore::reportMemoryUsage):
34864         * bindings/v8/DOMDataStore.h:
34865         (DOMDataStore):
34866         (WebCore::DOMDataStore::domNodeMap):
34867         (WebCore::DOMDataStore::activeDomNodeMap):
34868         (WebCore::DOMDataStore::domObjectMap):
34869         (WebCore::DOMDataStore::activeDomObjectMap):
34870         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34871         * bindings/v8/ScopedDOMDataStore.h: Removed.
34872         * bindings/v8/SerializedScriptValue.cpp:
34873         (WebCore::neuterBinding):
34874         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34875         * bindings/v8/StaticDOMDataStore.h: Removed.
34876         * bindings/v8/V8DOMMap.cpp:
34877         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34878         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34879         (WebCore::visitActiveDOMNodes):
34880         (WebCore::visitDOMObjects):
34881         (WebCore::visitActiveDOMObjects):
34882         * bindings/v8/V8DOMMap.h:
34883         (WebCore):
34884         * bindings/v8/V8PerIsolateData.h:
34885         (V8PerIsolateData):
34886         * bindings/v8/WorkerScriptController.cpp:
34887         (WebCore::WorkerScriptController::WorkerScriptController):
34888         (WebCore::WorkerScriptController::~WorkerScriptController):
34889         * bindings/v8/WorkerScriptController.h:
34890         (WorkerScriptController):
34891
34892 2012-10-24  Kent Tamura  <tkent@chromium.org>
34893
34894         Minimize CSS rulesets for multiple-fields input
34895         https://bugs.webkit.org/show_bug.cgi?id=100198
34896
34897         Reviewed by Kentaro Hara.
34898
34899         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34900          input::-webkit-datetime-edit-*-field had identical ruleset.
34901
34902         - Move some rulesets near to related rulesets.
34903          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34904          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34905         input::-webkit-datetime-edit-minute-field[readonly].
34906
34907         No new tests. This shouldn't make any behavior change.
34908
34909         * css/html.css:
34910         (input::-webkit-datetime-edit-year-field):
34911         (input::-webkit-datetime-edit-year-field:focus):
34912         (input::-webkit-datetime-edit-second-field[readonly]):
34913
34914 2012-10-24  Kent Tamura  <tkent@chromium.org>
34915
34916         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34917         https://bugs.webkit.org/show_bug.cgi?id=100326
34918
34919         Reviewed by Eric Seidel.
34920
34921         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34922
34923         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34924         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34925         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34926
34927 2012-10-24  Adam Barth  <abarth@webkit.org>
34928
34929         [V8] DOMData is no longer needed
34930         https://bugs.webkit.org/show_bug.cgi?id=100313
34931
34932         Reviewed by Eric Seidel.
34933
34934         This class serves no purpose anymore and can be deleted.
34935
34936         * WebCore.gypi:
34937         * bindings/v8/DOMData.cpp: Removed.
34938         * bindings/v8/DOMData.h: Removed.
34939         * bindings/v8/DOMDataStore.cpp:
34940         (WebCore::DOMDataStore::current):
34941         * bindings/v8/DOMDataStore.h:
34942         (WebCore):
34943         (DOMDataStore):
34944         * bindings/v8/SerializedScriptValue.cpp:
34945         (WebCore::neuterBinding):
34946         * bindings/v8/V8DOMMap.cpp:
34947         (WebCore::getDOMNodeMap):
34948         (WebCore::getActiveDOMNodeMap):
34949         (WebCore::getDOMObjectMap):
34950         (WebCore::getActiveDOMObjectMap):
34951         (WebCore::removeAllDOMObjects):
34952         (WebCore::visitActiveDOMNodes):
34953         (WebCore::visitDOMObjects):
34954         (WebCore::visitActiveDOMObjects):
34955
34956 2012-10-24  Kent Tamura  <tkent@chromium.org>
34957
34958         Sort an Xcode project file.
34959
34960         * WebCore.xcodeproj/project.pbxproj: Sorted.
34961
34962 2012-10-24  Adam Barth  <abarth@webkit.org>
34963
34964         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
34965         https://bugs.webkit.org/show_bug.cgi?id=100175
34966
34967         Reviewed by Eric Seidel.
34968
34969         Before this patch, AbstractWeakReferenceMap served two masters:
34970
34971         1) DOM wrappers
34972         2) NPV8 function templates
34973
34974         These two uses cases pushed AbstractWeakReferenceMap to be more general
34975         and complex that needed. This patch separates these two uses cases into
34976         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
34977         not worth complicating the DOM wrapper code path to share that tiny
34978         amount of code.
34979
34980         The other thing this patch does is store a pointer to the DOM wrapper
34981         map as the weak callback context object. That means we no longer need
34982         to search through all the wrapper maps in order to find the map that
34983         contains this particular DOM wrapper.
34984
34985         * WebCore.gypi:
34986         * bindings/v8/DOMData.cpp:
34987         * bindings/v8/DOMData.h:
34988         (DOMData):
34989         * bindings/v8/DOMDataStore.cpp:
34990             - Delete all these complicated weak callback functions. The weak
34991               callback functions are now an order of magnitude simpler and
34992               declared as private member functions on the wrapper map.
34993         * bindings/v8/DOMDataStore.h:
34994         (WebCore::DOMDataStore::domNodeMap):
34995         (WebCore::DOMDataStore::activeDomNodeMap):
34996         (DOMDataStore):
34997             - We now have a consistent type to use for all these wrapper maps.
34998               Both the hash map and the intrusive map derive from
34999               DOMWrapperMap (with a single template parameter).
35000         * bindings/v8/DOMWrapperMap.h: Added.
35001         (WebCore):
35002         (DOMWrapperVisitor):
35003             - The visitor is no longer an inner class. It's just a top-level
35004               class that does the same thing.
35005         (DOMWrapperMap):
35006             - The abstract interface for DOMWrapperMap has about half as many
35007               functions as the old AbstractWeakReferenceMap because the two use
35008               cases are disentangled.
35009         (WebCore::DOMWrapperMap::~DOMWrapperMap):
35010         (DOMWrapperHashMap):
35011             - This is a concrete instance of DOMWrapperMap that uses a hash map.
35012         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
35013         (WebCore::DOMWrapperHashMap::remove):
35014         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
35015             - Notice that the context parameter now points to the hashmap
35016               itself rather than to the native object. Now that we don't need
35017               to handle the NPAPI case, we can recover the native object from
35018               the wrapper using toNative. The assert in set() ensures that this
35019               always works.
35020         * bindings/v8/DOMWrapperWorld.h:
35021         * bindings/v8/IntrusiveDOMWrapperMap.h:
35022             - These classes are now simplified because they need to implement
35023               fewer functions.
35024         (WebCore::DOMNodeWrapperMap::weakCallback):
35025             - For this weak callback, we still use the native object as the
35026               context parameter. We could also recover the native object from
35027               the wrapper, which means this context parameter is available to
35028               do other work.
35029         * bindings/v8/ScopedDOMDataStore.cpp:
35030         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
35031             - This code no longer needs to have knowledge of which weak
35032               callbacks these objects use.
35033         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
35034             - We need to clear the maps before deleting them because there are
35035               still JavaScript objects that have references to the map in their
35036               weak callback parameter. Previously, we handled this case because
35037               we would search all the wrapper maps and fail to find the wrapper.
35038         * bindings/v8/ScriptProfiler.cpp:
35039         (WebCore::ScriptProfiler::visitExternalArrays):
35040         * bindings/v8/StaticDOMDataStore.cpp:
35041             - This code no longer needs to have knowledge of which weak
35042               callback these maps use.
35043         * bindings/v8/StaticDOMDataStore.h:
35044         (StaticDOMDataStore):
35045         * bindings/v8/V8DOMMap.cpp:
35046         (WebCore::getDOMNodeMap):
35047         (WebCore::getActiveDOMNodeMap):
35048         (WebCore::removeAllDOMObjects):
35049             - Rather than using some complicated visitor pattern, we can now
35050               just call clear() directly on the maps to remove all the objects.
35051         (WebCore::visitActiveDOMNodes):
35052         (WebCore::visitDOMObjects):
35053         (WebCore::visitActiveDOMObjects):
35054         * bindings/v8/V8DOMMap.h:
35055         (WebCore):
35056             - Delete the old versions of these classes.
35057         (DOMDataStoreHandle):
35058             - Style nit: one-argument constructors should be marked explicit.
35059         * bindings/v8/V8DOMWrapper.cpp:
35060         (WebCore::V8DOMWrapper::domWrapperType):
35061             - I moved this logic into WrapperTypeInfo.h to avoid a circular
35062               header dependency.
35063         * bindings/v8/V8DOMWrapper.h:
35064         (WebCore::V8DOMWrapper::getCachedWrapper):
35065         * bindings/v8/V8GCController.cpp:
35066             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
35067               longer clear the weak callbacks in V8GCController).
35068         * bindings/v8/V8NPObject.cpp:
35069         (V8NPTemplateMap):
35070             - staticTemplateMap is no longer an instance of WeakReferenceMap.
35071               Instead, this patch just implements the functionality we need
35072               here directly.
35073         (WebCore::V8NPTemplateMap::get):
35074         (WebCore::V8NPTemplateMap::set):
35075         (WebCore::V8NPTemplateMap::sharedInstance):
35076         (WebCore::V8NPTemplateMap::weakCallback):
35077         (WebCore::V8NPTemplateMap::dispose):
35078         (WebCore::npObjectGetProperty):
35079         (WebCore):
35080         (WebCore::staticNPObjectMap):
35081         (WebCore::weakNPObjectCallback):
35082             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
35083               just use the more basic "remove" and "Dispose" operations to do
35084               the same thing. This is possible now because we no longer have
35085               "removeIfPossible" to support searching all the wrapper maps for
35086               the one that has the right wrapper.
35087         (WebCore::createV8ObjectForNPObject):
35088             - DOMWrapperMap No longer has a "contains" function. Instead, we
35089               use get, which actually makes this code more efficient because we
35090               only do one hash map lookup.
35091         (WebCore::forgetV8ObjectForNPObject):
35092             - The changes here are a combination of the two sorts of changes
35093               above.
35094         * bindings/v8/WrapperTypeInfo.h:
35095         (WebCore::toNative):
35096         (WebCore::toWrapperTypeInfo):
35097             - The patch moves these functions into this header to avoid a
35098               circular header dependency.
35099
35100 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35101
35102         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35103         https://bugs.webkit.org/show_bug.cgi?id=100298
35104
35105         Reviewed by Martin Robinson.
35106
35107         Do not copy FloatRect arguments src and dst to local variables.
35108         Instead, use src and dst directly.
35109
35110         No new tests. No change in behavior.
35111
35112         * platform/graphics/cairo/BitmapImageCairo.cpp:
35113         (WebCore::BitmapImage::draw):
35114
35115 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35116
35117         [SOUP] Provide logging for SocketStreamHandleSoup
35118         https://bugs.webkit.org/show_bug.cgi?id=100215
35119
35120         Reviewed by Alexey Proskuryakov.
35121
35122         Add logging to SocketStreamHandleSoup to facilitate debugging.
35123
35124         * platform/network/soup/SocketStreamHandleSoup.cpp:
35125         (WebCore::SocketStreamHandle::SocketStreamHandle):
35126         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35127         (WebCore::SocketStreamHandle::platformSend):
35128         (WebCore::SocketStreamHandle::platformClose):
35129
35130 2012-10-24  Nico Weber  <thakis@chromium.org>
35131
35132         Pass on exif orientation from ImageSource when using the open-source image decoders
35133         https://bugs.webkit.org/show_bug.cgi?id=100164
35134
35135         Reviewed by Eric Seidel.
35136
35137         The orientation is honored always for image documents, and optionally
35138         for <img> elements if shouldRespectImageOrientation is set (off by
35139         default). However, the feature needs port-specific modifications to
35140         GraphicsContext (without this, webcore will use the rotated bounds but
35141         draw the image as if it hadn't be rotated, resulting in squished
35142         pixels), and most ports don't implement these yet -- so put
35143         turning this on for image documents behind a port-specific #ifdef.
35144
35145         No observable behavior change. Once it's hooked up, it will be tested
35146         by fast/images/exif-orientation.html.
35147
35148         * platform/graphics/ImageSource.cpp:
35149         (WebCore::ImageSource::size):
35150         (WebCore::ImageSource::frameSizeAtIndex):
35151         (WebCore::ImageSource::orientationAtIndex):
35152         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35153         (WebCore::DeferredImageDecoder::orientation):
35154         (WebCore):
35155         * platform/graphics/chromium/DeferredImageDecoder.h:
35156         (DeferredImageDecoder):
35157         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35158         (WebCore::readImageOrientation):
35159         * rendering/RenderObject.cpp:
35160         (WebCore::RenderObject::shouldRespectImageOrientation):
35161
35162 2012-10-24  Beth Dakin  <bdakin@apple.com>
35163
35164         https://bugs.webkit.org/show_bug.cgi?id=100169
35165         We should make TileCache tiles the size of the tile coverage rect 
35166         when we can't do fast scrolling
35167         -and-
35168         <rdar://problem/12505021>
35169
35170         Reviewed by Simon Fraser.
35171
35172         Some websites that don't do fast scrolling still scroll slower than 
35173         they do with tiled drawing disabled. 
35174         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35175         performance problem, but there is still more ground to make up. This 
35176         patch addresses the remaining issue by making tiles the size of the 
35177         window when we can't do fast scrolling. 
35178
35179         The constructor and create function no longer take a size parameter. 
35180         That's all fully controlled within TileCache now. m_tileSize is no 
35181         longer const.
35182         * platform/graphics/ca/mac/TileCache.h:
35183
35184         Store the current default size as constants so that we can access it 
35185         in both the constructor and adjustTileSizeForCoverageRect().
35186         * platform/graphics/ca/mac/TileCache.mm:
35187         (WebCore::TileCache::TileCache):
35188
35189         This new function will set m_tileSize to the size of the tile 
35190         coverage rect if the tile coverage is limited to the visible area. 
35191         Otherwise, the tiles are set to be the default size.
35192         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35193         
35194         Call adjustTileSizeForCoverageRect().
35195         (WebCore::TileCache::revalidateTiles):
35196
35197         No need to send in a size anymore.
35198         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35199         (WebCore):
35200
35201 2012-10-24  David Barton  <dbarton@mathscribe.com>
35202
35203         MathML tests trigger font cache assertions in debug bots
35204         https://bugs.webkit.org/show_bug.cgi?id=100268
35205
35206         Reviewed by Eric Seidel.
35207
35208         Add a FontCachePurgePreventer to fix this.
35209
35210         Tested by existing tests.
35211
35212         * rendering/mathml/RenderMathMLOperator.cpp:
35213         (WebCore::RenderMathMLOperator::updateFromElement):
35214
35215 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35216
35217         Update main frame scroll position immediately for programmatic scrolls
35218         https://bugs.webkit.org/show_bug.cgi?id=98074
35219
35220         Reviewed by Simon Fraser.
35221
35222         Immediately update the main frame scroll position after a programmatic scroll,
35223         so that performing a scrollBy or scrollTo will be instantly reflected in
35224         all of the scroll offset accessors.
35225
35226         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35227         can use threaded scrolling.
35228
35229         * page/scrolling/ScrollingCoordinator.cpp:
35230         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35231
35232 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35233
35234         [Chromium] Allow pushState and related history APIs to be disabled per context
35235         https://bugs.webkit.org/show_bug.cgi?id=99780
35236
35237         Reviewed by Adam Barth.
35238
35239         Chrome Apps do not support the history API (or navigation in general).
35240         Since pushState is generally feature detected, it's cleanest to disable
35241         it via a V8 per-context feature, so that applications can have the
35242         appropriate fallback behavior (other history APIs are re-mapped to throw
35243         exceptions, since history.back() and the link are not feature detected).
35244
35245         * dom/ContextFeatures.cpp:
35246         (WebCore::ContextFeatures::pushStateEnabled):
35247         (WebCore):
35248         * dom/ContextFeatures.h:
35249         * dom/Document.cpp:
35250         (WebCore::Document::enqueuePopstateEvent):
35251         * page/History.idl:
35252
35253 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35254
35255         MediaStream API: Make sure all events are dispatched asynchronously
35256         https://bugs.webkit.org/show_bug.cgi?id=100286
35257
35258         Reviewed by Adam Barth.
35259
35260         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35261         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35262
35263         Test: fast/mediastream/RTCPeerConnection-events.html
35264         Also tested by the chromium webrtc fuzz tests.
35265
35266         * Modules/mediastream/RTCPeerConnection.cpp:
35267         (WebCore::RTCPeerConnection::RTCPeerConnection):
35268         (WebCore::RTCPeerConnection::negotiationNeeded):
35269         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35270         (WebCore::RTCPeerConnection::didAddRemoteStream):
35271         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35272         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35273         (WebCore::RTCPeerConnection::changeReadyState):
35274         (WebCore::RTCPeerConnection::changeIceState):
35275         (WebCore):
35276         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35277         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35278         * Modules/mediastream/RTCPeerConnection.h:
35279         (RTCPeerConnection):
35280
35281 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35282
35283         [Chromium] Remove screen-related functions from PlatformSupport
35284         https://bugs.webkit.org/show_bug.cgi?id=97474
35285
35286         Reviewed by Adam Barth.
35287
35288         Screen-related functions like screenHorizontalDPI that
35289         used to be on PlatformSupport are now accessed through a new
35290         PlatformPageClient attached to Widget in WebCore-land, which is
35291         implemented by ChromeClientImpl in WebKit-land, which proxies
35292         calls to WebWidgetClient, which is actually implemented in
35293         Chromium-land.
35294
35295         * WebCore.gypi:
35296         * platform/Widget.h:
35297         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35298         (PageClientChromium):
35299         * platform/chromium/PlatformScreenChromium.cpp:
35300         (WebCore::toPlatformPageClient):
35301         (WebCore):
35302         (WebCore::screenHorizontalDPI):
35303         (WebCore::screenVerticalDPI):
35304         (WebCore::screenDepth):
35305         (WebCore::screenDepthPerComponent):
35306         (WebCore::screenIsMonochrome):
35307         (WebCore::screenRect):
35308         (WebCore::screenAvailableRect):
35309         * platform/chromium/PlatformSupport.h:
35310         (PlatformSupport):
35311
35312 2012-10-24  Adam Barth  <abarth@webkit.org>
35313
35314         [V8] WorkerContextExecutionProxy doesn't need to track events
35315         https://bugs.webkit.org/show_bug.cgi?id=100295
35316
35317         Reviewed by Eric Seidel.
35318
35319         This code was added when this code was originally upstreamed as part of
35320         the Chromium port. There doesn't appear to be any reason why
35321         WorkerContextExecutionProxy needs to keep a Vector of raw event
35322         pointers. Those points are likely to become dangling, making the rest
35323         of what this code does very sketchy.
35324
35325         * bindings/v8/V8WorkerContextEventListener.cpp:
35326         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35327         * bindings/v8/WorkerContextExecutionProxy.cpp:
35328         (WebCore::WorkerContextExecutionProxy::dispose):
35329         * bindings/v8/WorkerContextExecutionProxy.h:
35330         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35331         (WorkerContextExecutionProxy):
35332
35333 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35334
35335         [CSS Shaders] The mesh should be specified using <column, row> order
35336         https://bugs.webkit.org/show_bug.cgi?id=96285
35337
35338         Reviewed by Dean Jackson.
35339
35340         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35341         column, row order.
35342
35343         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35344
35345         * css/CSSComputedStyleDeclaration.cpp:
35346         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35347             Append the number of columns before the number of rows in the meshParameters
35348             CSSValueList.
35349         * css/StyleResolver.cpp:
35350         (WebCore::StyleResolver::createCustomFilterOperation):
35351             Store the second mesh parameter in meshRows instead of meshColumns.
35352
35353 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35354
35355         loaderRunLoop() should use synchronization instead of while loop
35356         https://bugs.webkit.org/show_bug.cgi?id=55402
35357
35358         Reviewed by Alexey Proskuryakov.
35359
35360         Originally, loaderRunLoop() sleeps until a thread has started and set
35361         the loaderRunLoopObject static variable. This patch uses
35362         ThreadCondition to synchronize instead of a while loop.
35363
35364         No new tests (No behavior change).
35365
35366         * platform/network/cf/LoaderRunLoopCF.cpp:
35367         (WebCore::runLoaderThread):
35368         (WebCore::loaderRunLoop):
35369         * platform/network/cf/LoaderRunLoopCF.h:
35370         (WebCore):
35371
35372 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35373
35374         Incorrect keycodes for numpad /, -, +, .
35375         https://bugs.webkit.org/show_bug.cgi?id=99188
35376
35377         Reviewed by Tony Chang.
35378
35379         In r57951 we switched to mapping keys by character code.
35380         This regressed the numpad keys which no longer match the Windows virtual key codes.
35381         This CL fixes this by never mapping numpad keys by character code.
35382
35383         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35384
35385         * platform/mac/PlatformEventFactoryMac.mm:
35386         (WebCore::windowsKeyCodeForKeyEvent):
35387
35388 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35389
35390         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35391         https://bugs.webkit.org/show_bug.cgi?id=100141
35392         <rdar://problem/12559147>
35393
35394         Reviewed by Tim Horton.
35395
35396         For PDF documents the RenderView is null, so null-check it to avoid a crash
35397         when saving PDFs.
35398
35399         * dom/Document.cpp:
35400         (WebCore::Document::windowScreenDidChange):
35401
35402 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35403
35404         Handle two-finger tap gestures in the same way as long-press gestures
35405         https://bugs.webkit.org/show_bug.cgi?id=99947
35406
35407         Reviewed by Adam Barth.
35408
35409         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35410         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35411         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35412         touch area of the long-press gesture.
35413
35414         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35415         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35416         the location and touch area of the first finger down; the location/area of the second 
35417         finger will be ignored.
35418
35419         Test: touchadjustment/touch-links-two-finger-tap.html
35420
35421         * page/EventHandler.cpp:
35422         (WebCore::EventHandler::handleGestureLongPress):
35423         (WebCore):
35424         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35425         (WebCore::EventHandler::handleGestureTwoFingerTap):
35426         (WebCore::EventHandler::adjustGesturePosition):
35427         * page/EventHandler.h:
35428         (EventHandler):
35429
35430 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35431
35432         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35433         https://bugs.webkit.org/show_bug.cgi?id=98167
35434
35435         Reviewed by Beth Dakin.
35436
35437         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35438         should override the visible text within an element.
35439
35440         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35441
35442         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35443         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35444
35445 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35446
35447         Unreviewed, rolling out r132303 and r132312.
35448         http://trac.webkit.org/changeset/132303
35449         http://trac.webkit.org/changeset/132312
35450         https://bugs.webkit.org/show_bug.cgi?id=100287
35451
35452         Triggering crashes on many popular websites (Requested by
35453         leviw|gardening on #webkit).
35454
35455         * css/CSSGrammar.y.in:
35456         * css/CSSParser.cpp:
35457         (WebCore::CSSParser::detectAtToken):
35458         * css/CSSParser.h:
35459         * css/CSSPropertySourceData.h:
35460         * css/RuleSet.cpp:
35461         (WebCore::RuleData::RuleData):
35462         (WebCore::RuleSet::addRule):
35463         (WebCore::RuleSet::addRegionRule):
35464         (WebCore::RuleSet::addRulesFromSheet):
35465         (WebCore::RuleSet::addStyleRule):
35466         * css/RuleSet.h:
35467         (RuleData):
35468         (RuleSet):
35469         * css/StyleResolver.cpp:
35470         (WebCore::makeRuleSet):
35471         (WebCore::StyleResolver::appendAuthorStyleSheets):
35472         (WebCore::StyleResolver::matchScopedAuthorRules):
35473         (WebCore::StyleResolver::locateSharedStyle):
35474         * css/StyleResolver.h:
35475         (StyleResolver):
35476         * css/StyleRule.cpp:
35477         (WebCore::StyleRuleBase::reportMemoryUsage):
35478         (WebCore::StyleRuleBase::destroy):
35479         (WebCore::StyleRuleBase::copy):
35480         (WebCore::StyleRuleBase::createCSSOMWrapper):
35481         * css/StyleRule.h:
35482         * css/StyleScopeResolver.cpp:
35483         (WebCore::StyleScopeResolver::reportMemoryUsage):
35484         * css/StyleScopeResolver.h:
35485         (WebCore):
35486         (StyleScopeResolver):
35487         * css/StyleSheetContents.cpp:
35488         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35489
35490 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35491
35492         IndexedDB: Cursor property value identities should be preserved
35493         https://bugs.webkit.org/show_bug.cgi?id=100051
35494
35495         Reviewed by Tony Chang.
35496
35497         Some W3C test submissions point out that subsequent accesses to cursor properties should
35498         yield the same value until the cursor advances. We handled this with custom binding code for
35499         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35500         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35501         be applied to key/primaryKey.
35502
35503         Test: storage/indexeddb/cursor-properties.html
35504
35505         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35506         (WebCore::IDBCursor::key):
35507         (WebCore::IDBCursor::primaryKey):
35508         (WebCore::IDBCursor::setValueReady):
35509         * Modules/indexeddb/IDBCursor.h:
35510         (IDBCursor):
35511         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35512         * Modules/indexeddb/IDBCursor.idl:
35513         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35514         (WebCore):
35515         * Modules/indexeddb/IDBRequest.cpp:
35516         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35517         * bindings/v8/IDBBindingUtilities.cpp:
35518         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35519         (WebCore):
35520         * bindings/v8/IDBBindingUtilities.h:
35521         (WebCore):
35522
35523 2012-10-24  Ami Fischman  <fischman@chromium.org>
35524
35525         call to setNeedsLayout during RenderVideo::paintReplaced
35526         https://bugs.webkit.org/show_bug.cgi?id=100265
35527
35528         Reviewed by Eric Carlson.
35529
35530         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35531         during paints earlier (so the offending calls are in the emitted stacktrace).
35532
35533         No new tests - new defensive checks are triggered by existing tests.
35534
35535         * page/FrameView.cpp:
35536         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35537         * rendering/RenderObject.cpp:
35538         (WebCore):
35539         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35540         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35541         * rendering/RenderObject.h:
35542         (RenderObject):
35543         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35544         * rendering/RenderVideo.cpp:
35545         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35546
35547 2012-10-24  Adam Barth  <abarth@webkit.org>
35548
35549         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35550         https://bugs.webkit.org/show_bug.cgi?id=100208
35551
35552         Reviewed by Eric Seidel.
35553
35554         Rather than clearing and re-establishing the weak callback for
35555         ActiveDOMObjects during every GC, this patch puts all the
35556         ActiveDOMObjects with pending activity into an object group with a live
35557         object, causing them not to be garbage collected.
35558
35559         In addition to simplifying this code, this patch makes the patch in
35560         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35561         V8GCController no longer needs to know how to configure the weak
35562         callbacks for these objects.
35563
35564         * bindings/v8/V8GCController.cpp:
35565         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35566         (ActiveDOMObjectPrologueVisitor):
35567         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35568         (WebCore::V8GCController::majorGCPrologue):
35569         (WebCore::V8GCController::majorGCEpilogue):
35570         * bindings/v8/V8PerIsolateData.cpp:
35571         (WebCore::V8PerIsolateData::V8PerIsolateData):
35572         * bindings/v8/V8PerIsolateData.h:
35573         (WebCore::V8PerIsolateData::liveRoot):
35574         (V8PerIsolateData):
35575
35576 2012-10-24  Brady Eidson  <beidson@apple.com>
35577
35578         Add a strategy for loader customization.
35579         https://bugs.webkit.org/show_bug.cgi?id=100278
35580
35581         Reviewed by Alexey Proskuryakov.
35582
35583         It's empty for now and does nothing, just like the goggles.
35584
35585         * WebCore.gypi:
35586         * WebCore.vcproj/WebCore.vcproj:
35587         * WebCore.xcodeproj/project.pbxproj:
35588         * platform/PlatformStrategies.h:
35589         (WebCore::PlatformStrategies::loaderStrategy):
35590         (PlatformStrategies):
35591         (WebCore::PlatformStrategies::PlatformStrategies):
35592
35593 2012-10-24  Tony Chang  <tony@chromium.org>
35594
35595         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35596         https://bugs.webkit.org/show_bug.cgi?id=99925
35597
35598         Reviewed by Ojan Vafai.
35599
35600         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35601
35602         Test: css3/flexbox/repaint-during-resize-no-flex.html
35603
35604         * rendering/RenderFlexibleBox.cpp:
35605         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35606         for setting the location of a child.
35607         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35608         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35609
35610 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35611
35612         Fix CALayer hiearchy when combining tiling with preserve-3d
35613         https://bugs.webkit.org/show_bug.cgi?id=100205
35614
35615         Reviewed by Dean Jackson.
35616
35617         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35618         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35619         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35620         it is the primary layer that is set to be single-sided.
35621         
35622         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35623         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35624         the tile cache container layer. However, the custom sublayers were being added as
35625         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35626         thus they were not affected by the doubleSided property.
35627         
35628         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35629         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35630         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35631         the latter list, so now the tile cache container layer becomes a sublayer of
35632         the primary layer, so is affected by that layer's doubleSided property.
35633
35634         Test: compositing/tiling/backface-preserve-3d-tiled.html
35635
35636         * platform/graphics/ca/GraphicsLayerCA.cpp:
35637         (WebCore::GraphicsLayerCA::updateSublayerList):
35638
35639 2012-10-23  Zhenyao Mo  <zmo@google.com>
35640
35641         Update mozilla's CheckedInt.h to the latest version
35642         https://bugs.webkit.org/show_bug.cgi?id=100177
35643
35644         Reviewed by Kenneth Russell.
35645
35646         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35647         (detail):
35648         (IsSupportedPass2):
35649         (IsSupported):
35650         (UnsignedType):
35651         (IsSigned):
35652         (TwiceBiggerType):
35653         (PositionOfSignBit):
35654         (MinValue):
35655         (MaxValue):
35656         (WebCore::detail::HasSignBit):
35657         (WebCore::detail::BinaryComplement):
35658         (WebCore::detail::IsInRange):
35659         (WebCore::detail::IsAddValid):
35660         (WebCore::detail::IsSubValid):
35661         (WebCore::detail::IsMulValid):
35662         (WebCore::detail::IsDivValid):
35663         (WebCore::detail::OppositeIfSignedImpl::run):
35664         (WebCore::detail::OppositeIfSigned):
35665         (WebCore):
35666         (CheckedInt):
35667         (WebCore::CheckedInt::CheckedInt):
35668         (WebCore::CheckedInt::value):
35669         (WebCore::CheckedInt::isValid):
35670         (WebCore::CheckedInt::operator -):
35671         (WebCore::CheckedInt::operator ==):
35672         (WebCore::CheckedInt::operator++):
35673         (WebCore::CheckedInt::operator--):
35674         (CastToCheckedIntImpl):
35675         (WebCore::detail::CastToCheckedIntImpl::run):
35676         (WebCore::castToCheckedInt):
35677         (WebCore::operator ==):
35678         * html/canvas/DataView.cpp: change valid() to isValid().
35679         (WebCore::DataView::create):
35680         * html/canvas/WebGLBuffer.cpp: Ditto.
35681         (WebCore::WebGLBuffer::associateBufferDataImpl):
35682         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35683         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35684         (WebCore):
35685         (WebCore::WebGLRenderingContext::drawArrays):
35686         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35687         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35688
35689 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35690
35691         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35692         https://bugs.webkit.org/show_bug.cgi?id=89885
35693
35694         Reviewed by Kenneth Rohde Christiansen.
35695
35696         Use mach_port instead of global tokens for IOSurfaces.
35697         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35698         can only be shared directly via IPC.
35699
35700         Tested by existing WebGL tests.
35701
35702         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35703         (GraphicsSurfaceToken):
35704         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35705         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35706         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35707
35708 2012-10-24  Rick Byers  <rbyers@chromium.org>
35709
35710         image-set doesn't round-trip properly with cssText
35711         https://bugs.webkit.org/show_bug.cgi?id=99725
35712
35713         Reviewed by Beth Dakin.
35714
35715         Fix serialization of -webkit-image-set rules to use the same format as
35716         is used for parsing.
35717
35718         Test: fast/css/image-set-setting.html
35719
35720         * css/CSSImageSetValue.cpp:
35721         (WebCore::CSSImageSetValue::customCssText):
35722         * css/CSSValueList.h:
35723         (WebCore::CSSValueList::item): Add const overload
35724
35725 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35726
35727         BlackBerry fix for webgl-depth-texture.html
35728         https://bugs.webkit.org/show_bug.cgi?id=100258
35729
35730         Reviewed by Yong Li.
35731
35732         Removed a platform specific define that is unnecessary.
35733
35734         * platform/graphics/GraphicsContext3D.cpp:
35735         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35736
35737 2012-10-24  Nico Weber  <thakis@chromium.org>
35738
35739         Honor image orientation in GraphicsContextSkia
35740         https://bugs.webkit.org/show_bug.cgi?id=100179
35741
35742         Reviewed by Stephen White.
35743
35744         Also fix a bug in ImageOrientation.h: Some of the values were
35745         switched. They now match the description in the exif spec at
35746         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35747         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35748         the picture at http://www.80sidea.com/archives/2316.
35749
35750         They showed up correctly in Safari because the orientation transform
35751         was done after flipping Y. Let the flipping happen later. I verified
35752         that flipping transformation order and fixing the exif enum cancelled
35753         each other out, so this has no effect on the apple port.
35754
35755         Not hooked up yet, so no observable difference.
35756
35757         * platform/graphics/BitmapImage.h:
35758         * platform/graphics/ImageOrientation.h:
35759         (WebCore::ImageOrientation::usesWidthAsHeight):
35760         (WebCore::ImageOrientation::fromEXIFValue):
35761         * platform/graphics/cg/GraphicsContextCG.cpp:
35762         (WebCore::GraphicsContext::drawNativeImage):
35763         * platform/graphics/skia/ImageSkia.cpp:
35764         (WebCore::paintSkBitmap):
35765         (WebCore::BitmapImage::draw):
35766         (WebCore):
35767
35768 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35769
35770         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35771
35772         * WebCore.vcproj/WebCore.vcproj:
35773
35774 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35775
35776         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35777         https://bugs.webkit.org/show_bug.cgi?id=100204
35778
35779         Reviewed by Beth Dakin.
35780
35781         Remove the "range" role as a valid ARIA role.
35782
35783         Test: platform/mac/accessibility/aria-slider-value.html
35784
35785         * accessibility/AccessibilityObject.cpp:
35786         (WebCore::createARIARoleMap):
35787
35788 2012-10-24  Florin Malita  <fmalita@chromium.org>
35789
35790         [Chromium] SVG repaint issues
35791         https://bugs.webkit.org/show_bug.cgi?id=99874
35792
35793         Reviewed by Levi Weintraub.
35794
35795         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35796         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35797         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35798         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35799         painting at the wrong location.
35800
35801         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35802         localToParentTransform()) doesn't perform rounding.
35803
35804         No new tests: existing pixel results cover this change after rebaseline.
35805
35806         * rendering/svg/RenderSVGRoot.cpp:
35807         (WebCore::RenderSVGRoot::paintReplaced):
35808
35809 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35810
35811         Fixing the Chromium build after typo in r132367.
35812
35813         * WebCore.gypi:
35814
35815 2012-10-24  Nico Weber  <thakis@chromium.org>
35816
35817         [chromium] Respect image orientation in image dragging code
35818         https://bugs.webkit.org/show_bug.cgi?id=100200
35819
35820         Reviewed by Tony Chang.
35821
35822         Based on the corresponding code in DragImageMac.mm.  The image
35823         rotation code isn't hooked up yet, so no observable effect for now.
35824
35825         * platform/chromium/DragImageChromiumSkia.cpp:
35826         (WebCore::createDragImageFromImage):
35827
35828 2012-10-24  Michael Saboff  <msaboff@apple.com>
35829
35830         Code cleanup after r132165
35831         https://bugs.webkit.org/show_bug.cgi?id=100135
35832
35833         Reviewed by Geoffrey Garen.
35834
35835         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35836
35837         Code clean up without functional changes, therefore no new tests.
35838
35839         * xml/parser/MarkupTokenBase.h:
35840         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35841         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35842         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35843         (WebCore::MarkupTokenBase::name): Elimintated inline.
35844         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35845
35846 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35847
35848         Crash when trying to write exception message to null console
35849         https://bugs.webkit.org/show_bug.cgi?id=99658
35850
35851         Reviewed by Adam Barth.
35852
35853         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35854         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35855         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35856
35857         Test: fast/workers/worker-exception-during-navigation.html
35858
35859         * dom/Document.cpp:
35860         (WebCore::Document::addMessage):
35861
35862 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35863
35864         Incorrect conditional use of LogFTP
35865         https://bugs.webkit.org/show_bug.cgi?id=100260
35866
35867         Reviewed by Alexey Proskuryakov.
35868
35869         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35870         without breaking the build.
35871
35872         * html/FTPDirectoryDocument.cpp:
35873         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35874
35875 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35876
35877         Add a strategy for shared workers
35878         https://bugs.webkit.org/show_bug.cgi?id=100165
35879
35880         Reviewed by Brady Eidson.
35881
35882         Also a little bit of alphabetization.
35883
35884         * WebCore.gypi:
35885         * WebCore.vcproj/WebCore.vcproj:
35886         * WebCore.xcodeproj/project.pbxproj:
35887         * platform/PlatformStrategies.h:
35888         * workers/SharedWorkerStrategy.h: Added.
35889
35890 2012-10-24  David Barton  <dbarton@mathscribe.com>
35891
35892         [MathML] Timeouts on linux after r132264
35893         https://bugs.webkit.org/show_bug.cgi?id=100202
35894
35895         Reviewed by Eric Seidel.
35896
35897         When building a stretched operator, such as a large parenthesis or bracket, we need to
35898         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35899         can occur if the glyph is missing on the host system.
35900
35901         Tested by existing tests.
35902
35903         * rendering/mathml/RenderMathMLOperator.cpp:
35904         (WebCore::RenderMathMLOperator::updateFromElement):
35905
35906 2012-10-24  Parth Patel  <parpatel@rim.com>
35907
35908         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35909         Generic ThreadUnsafe Singleton
35910         https://bugs.webkit.org/show_bug.cgi?id=100145
35911
35912         Reviewed by Rob Buis.
35913
35914         Extending the singletons to generic singleton and changing
35915         getInstance() in IconDatabaseClientBlackBerry to instance()
35916         to match the generic singleton template.
35917
35918         Reviewed Internally by Yong Li.
35919
35920         Tests are not modified and added as there was no behavioural change.
35921
35922         * platform/blackberry/SharedTimerBlackBerry.cpp:
35923         (SharedTimerBlackBerry):
35924         (WebCore):
35925
35926 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35927
35928         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35929         https://bugs.webkit.org/show_bug.cgi?id=100254
35930
35931         Reviewed by Yury Semikhatsky.
35932
35933         * loader/ResourceBuffer.cpp:
35934         (WebCore::ResourceBuffer::reportMemoryUsage):
35935         (WebCore):
35936         * loader/ResourceBuffer.h:
35937         (ResourceBuffer):
35938
35939 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35940
35941         Allow ports to override text track rendering style
35942         https://bugs.webkit.org/show_bug.cgi?id=97800
35943         <rdar://problem/12044964>
35944
35945         Unreviewed Build fix.
35946         
35947         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35948
35949         * page/CaptionUserPreferencesMac.mm:
35950         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35951
35952 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35953
35954         Allow ports to override text track rendering style
35955         https://bugs.webkit.org/show_bug.cgi?id=97800
35956         <rdar://problem/12044964>
35957
35958         Reviewed by Maciej Stachowiak.
35959
35960         * WebCore.exp.in: Export new WebkitSystemInterface functions.
35961         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
35962             and CaptionUserPreferencesMac.h.
35963
35964         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
35965             background, and text independently.
35966
35967         * html/HTMLMediaElement.cpp:
35968         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
35969         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
35970         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
35971         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
35972         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
35973         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
35974             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
35975         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
35976         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
35977             setClosedCaptionsVisible
35978         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
35979
35980         * html/shadow/MediaControlElements.cpp:
35981         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
35982             variable. Get caption font scale from theme instead of hard coding.
35983         * html/shadow/MediaControlElements.h:
35984
35985         * html/track/TextTrack.cpp:
35986         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
35987         (WebCore::TextTrack::isValidKindKeyword): Ditto.
35988         (WebCore::TextTrack::setKind): Ditto.
35989         (WebCore::TextTrack::setMode): Ditto.
35990         (WebCore::TextTrack::mode): Ditto.
35991         * html/track/TextTrack.h:
35992         (WebCore::TextTrack::create): Ditto.
35993         (WebCore::TextTrack::kind): Ditto.
35994         (WebCore::TextTrack::label): Ditto.
35995         (WebCore::TextTrack::setLabel): Ditto.
35996         (WebCore::TextTrack::language): Ditto.
35997         (WebCore::TextTrack::setLanguage): Ditto.
35998
35999         * html/track/TextTrackCue.cpp:
36000         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
36001         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
36002             shadow pseudo id so it can be used elsewhere.
36003         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
36004         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
36005             shadow pseudo id so it can be used elsewhere.
36006         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
36007         (WebCore::TextTrackCue::updateDisplayTree):
36008         * html/track/TextTrackCue.h:
36009
36010         * page/CaptionUserPreferences.h: Added.
36011         * page/CaptionUserPreferencesMac.h: Added.
36012         * page/CaptionUserPreferencesMac.mm: Added.
36013         (WebCore::userCaptionPreferencesChangedNotificationCallback):
36014         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
36015         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
36016         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
36017         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
36018         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
36019         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
36020             background color preference.
36021         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
36022         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
36023         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
36024             or webkit-text-stroke property.
36025         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
36026             with a color value.
36027         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
36028             text with the user's preferred text edge stye.
36029         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
36030             text with the user's preferred font.
36031         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
36032             with the user's preferred style.
36033         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
36034         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
36035         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
36036             changes listener.
36037         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
36038             changes listener.
36039         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
36040             inject it into the current page group, otherwise remove injected sheet.
36041
36042         * page/PageGroup.cpp:
36043         (WebCore::PageGroup::captionPreferences):
36044         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
36045             of the same name.
36046         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
36047         (WebCore::PageGroup::userPrefersCaptions): Ditto.
36048         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
36049         (WebCore::PageGroup::captionFontSizeScale): Ditto.
36050         * page/PageGroup.h:
36051
36052         * platform/mac/WebCoreSystemInterface.h: Updated.
36053         * platform/mac/WebCoreSystemInterface.mm: Ditto.
36054
36055 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36056
36057         Web Inspector: Introduce workspace provider as a content providing backend for project.
36058         https://bugs.webkit.org/show_bug.cgi?id=100244
36059
36060         Reviewed by Pavel Feldman.
36061
36062         Introduced WorkspaceProvider interface as a content providing backend for project.
36063         Added NetworkWorkspaceProvider as a network based (default) implementation.
36064
36065         * WebCore.gypi:
36066         * WebCore.vcproj/WebCore.vcproj:
36067         * inspector/compile-front-end.py:
36068         * inspector/front-end/CompilerScriptMapping.js:
36069         (WebInspector.CompilerScriptMapping):
36070         * inspector/front-end/DebuggerScriptMapping.js:
36071         (WebInspector.DebuggerScriptMapping):
36072         * inspector/front-end/NetworkUISourceCodeProvider.js:
36073         (WebInspector.NetworkUISourceCodeProvider):
36074         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
36075         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
36076         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
36077         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
36078         (WebInspector.NetworkWorkspaceProvider):
36079         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
36080         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
36081         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
36082         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
36083         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
36084         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
36085         * inspector/front-end/SASSSourceMapping.js:
36086         (WebInspector.SASSSourceMapping):
36087         (_bindUISourceCode):
36088         * inspector/front-end/ScriptSnippetModel.js:
36089         (WebInspector.ScriptSnippetModel):
36090         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36091         * inspector/front-end/WebKit.qrc:
36092         * inspector/front-end/Workspace.js:
36093         (WebInspector.FileDescriptor):
36094         (WebInspector.WorkspaceProvider):
36095         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
36096         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
36097         (WebInspector.WorkspaceProvider.prototype.addEventListener):
36098         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36099         (WebInspector.Project):
36100         (WebInspector.Project.prototype.reset):
36101         (WebInspector.Project.prototype._fileAdded):
36102         (WebInspector.Project.prototype._fileRemoved):
36103         (WebInspector.Project.prototype.requestFileContent):
36104         (WebInspector.Project.prototype.searchInFileContent):
36105         (WebInspector.Workspace):
36106         (WebInspector.Workspace.prototype.addProject):
36107         (WebInspector.Workspace.prototype.project):
36108         * inspector/front-end/inspector.html:
36109         * inspector/front-end/inspector.js:
36110
36111 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36112
36113         Web Inspector: Styles pane: Don't select whole value when I select just a part
36114         https://bugs.webkit.org/show_bug.cgi?id=100242
36115
36116         Reviewed by Alexander Pavlov.
36117
36118         * inspector/front-end/StylesSidebarPane.js:
36119         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36120         (WebInspector.StylePropertyTreeElement.prototype):
36121
36122 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36123
36124         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36125         https://bugs.webkit.org/show_bug.cgi?id=100216
36126
36127         Reviewed by Pavel Feldman.
36128
36129         Workspace is now passed to UISourceCode to be used as a content provider.
36130         Content providers are now stored in the workspace/project.
36131         Next step would be to move content providers to workspace providers.
36132
36133         * inspector/front-end/BreakpointManager.js:
36134         (WebInspector.BreakpointManager.breakpointStorageId):
36135         * inspector/front-end/UISourceCode.js:
36136         (WebInspector.UISourceCode):
36137         (WebInspector.UISourceCode.prototype.contentType):
36138         (WebInspector.UISourceCode.prototype.requestContent):
36139         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36140         (WebInspector.UISourceCode.prototype._commitContent):
36141         (WebInspector.UISourceCode.prototype.searchInContent):
36142         * inspector/front-end/Workspace.js:
36143         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36144         (WebInspector.Project):
36145         (WebInspector.Project.prototype.addUISourceCode):
36146         (WebInspector.Project.prototype.removeUISourceCode):
36147         (WebInspector.Project.prototype.uiSourceCodes):
36148         (WebInspector.Project.prototype.requestFileContent):
36149         (WebInspector.Project.prototype.searchInFileContent):
36150         (WebInspector.Workspace):
36151         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36152         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36153         (WebInspector.Workspace.prototype.reset):
36154
36155 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36156
36157         Implement GraphicsSurface for Windows.
36158         https://bugs.webkit.org/show_bug.cgi?id=98147
36159
36160         Reviewed by Kenneth Rohde Christiansen.
36161
36162         * Target.pri:
36163             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36164         * platform/graphics/surfaces/GraphicsSurface.h:
36165             Add typedef for PlatformGraphicsSurface on Windows.
36166         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36167             Add typedef for BufferHandle on Windows.
36168         (GraphicsSurfaceToken):
36169         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36170             The GraphicsSurface implementation on Windows relies on the
36171             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36172             For Qt this requirements are implicitly satisfied, when Qt is built
36173             on Windows and QT_CONFIG contains OpenGLES2.
36174             The GraphicsSurface then renders a given texture onto an offscreen
36175             pixel buffer surface, queries the surface pointer using the
36176             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36177             surface pointer (share handle) over IPC.
36178             On the UIProcess side, the surface pointer can then be resolved
36179             using eglCreatePbufferFromClientBuffer.
36180         (WebCore):
36181         (WebCore::loadShader):
36182             Initialize the shaders needed for drawing onto the GraphicsSurface.
36183         (GraphicsSurfacePrivate):
36184         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36185             In case of the instance being on the WebProcess side,
36186             create an EGLContext that shares the texture objects with the provided
36187             share context. Also create two pixel buffer surfaces, one as front- and
36188             one as backbuffer.
36189             Query the surface pointers for the pixel buffer surfaces and initialize
36190             the GraphicsSurfaceToken that can be passed over IPC later.
36191         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36192             Release all aquired resources and destroy the pixel buffer surfaces.
36193             Also close the EGL-Display connection.
36194         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36195             Make the belonging context current on the back buffer surface
36196             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36197         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36198             Save the previously current context, then make the context belonging
36199             to the GraphicsSurface current.
36200         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36201             Restore the context that was current before calling makeCurrent().
36202         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36203             Swap front and back buffer surfaces and handles.
36204         (WebCore::GraphicsSurfacePrivate::token):
36205         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36206             This function is meant to be called from the UIProcess side.
36207             If no front buffer surface has been created before for the current
36208             front buffer handle, one will be created.
36209             Then eglBindTexImage will be used to actually bind the current
36210             front buffer surface to a texture as a source for drawing.
36211         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36212         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36213         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36214         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36215             Free the resources related to the front buffer surface.
36216             On the UIProcess side we never actually bind the back buffer.
36217         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36218             Initialize and link the shader programs necessary for drawing
36219             onto the GraphicsSurface.
36220         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36221             Creates a single pixel buffer surface from a share Handle.
36222             This function will be called on the UIProcess side,
36223             for the front buffer handle, whenever the buffers have been swapped.
36224         (WebCore::GraphicsSurfacePrivate::drawTexture):
36225             The WebProcess uses this function to draw a given
36226             texture onto the GraphicsSurface's back buffer.
36227         (WebCore::GraphicsSurface::platformExport):
36228         (WebCore::GraphicsSurface::platformGetTextureID):
36229         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36230         (WebCore::GraphicsSurface::platformCopyFromTexture):
36231         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36232             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36233             to the TextureMapper on the UIProcess side.
36234         (WebCore::GraphicsSurface::platformFrontBuffer):
36235         (WebCore::GraphicsSurface::platformSwapBuffers):
36236         (WebCore::GraphicsSurface::platformCreate):
36237         (WebCore::GraphicsSurface::platformImport):
36238         (WebCore::GraphicsSurface::platformLock):
36239         (WebCore::GraphicsSurface::platformUnlock):
36240         (WebCore::GraphicsSurface::platformDestroy):
36241
36242 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36243
36244         Web Inspector: provide memory instrumentation for ListHashSet
36245         https://bugs.webkit.org/show_bug.cgi?id=97786
36246
36247         Reviewed by Vsevolod Vlasov.
36248
36249         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36250         as it should work just just fine now that there is a memory instrumentation of
36251         ListHashSet.
36252
36253         * dom/DocumentEventQueue.cpp:
36254         * dom/DocumentStyleSheetCollection.cpp:
36255         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36256         * loader/cache/CachedResourceLoader.cpp:
36257         (WebCore::CachedResourceLoader::reportMemoryUsage):
36258
36259 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36260
36261         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36262         https://bugs.webkit.org/show_bug.cgi?id=100193
36263
36264         Reviewed by George Staikos.
36265
36266         We should store the credentials in the redirection response handler, if the request is challenged.
36267         Because the redirect response suggests the authentication succeeds. 
36268
36269         Test: http://browsertest01.rim.net/authbasic
36270
36271         * platform/network/blackberry/NetworkJob.cpp:
36272         (WebCore::NetworkJob::handleRedirect):
36273
36274 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36275
36276         Web Inspector: Implement CSS reload upon related SASS resource saving
36277         https://bugs.webkit.org/show_bug.cgi?id=98024
36278
36279         Reviewed by Vsevolod Vlasov.
36280
36281         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36282         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36283         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36284
36285         * English.lproj/localizedStrings.js:
36286         * inspector/front-end/SASSSourceMapping.js:
36287         (WebInspector.SASSSourceMapping):
36288         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36289         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36290         (_bindUISourceCode):
36291         (_addCSSURLforSASSURL):
36292         * inspector/front-end/Settings.js:
36293         * inspector/front-end/SettingsScreen.js:
36294         (WebInspector.GenericSettingsTab):
36295
36296 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36297
36298         Memory instrumentation: don't count agent-specific front-ends separately
36299         https://bugs.webkit.org/show_bug.cgi?id=100087
36300
36301         Reviewed by Alexander Pavlov.
36302
36303         Pointers to domain-specific inspector front-end interfaces are reported as
36304         weak pointers instead of members to avoid double-counting.
36305
36306         Test by comparing set of reported instrumented objects with the set of objects
36307         allocated by tcmalloc.
36308
36309         * inspector/InspectorDOMStorageAgent.cpp:
36310         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36311         * inspector/InspectorDOMStorageResource.cpp:
36312         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36313         * inspector/InspectorProfilerAgent.cpp:
36314         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36315
36316 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36317
36318         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36319         https://bugs.webkit.org/show_bug.cgi?id=100203
36320
36321         Unreviewed Build fix.
36322
36323         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36324         set and STYLE_SCOPED is not.
36325
36326         No new tests, no behavior change.
36327
36328         * css/StyleResolver.h:
36329         (WebCore::StyleResolver::ensureScopeResolver):
36330
36331 2012-10-23  Andreas Kling  <kling@webkit.org>
36332
36333         Remove specialized hash traits for GlyphPages.
36334         <http://webkit.org/b/100185>
36335
36336         Reviewed by Dan Bernstein.
36337
36338         Now that the default minimum table size has been lowered for all tables, there's no need
36339         for this specialization anymore.
36340
36341         * platform/graphics/FontFallbackList.h:
36342         (FontFallbackList):
36343
36344 2012-10-23  Kent Tamura  <tkent@chromium.org>
36345
36346         Multiple fields input UI: Don't use CSS properties for physical direction
36347         https://bugs.webkit.org/show_bug.cgi?id=100195
36348
36349         Reviewed by Kentaro Hara.
36350
36351         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36352         not direction-neutral, and makes unexpected appearance in RTL. We should
36353         use -webkit-padding-start or -webkit-margin-start.
36354
36355         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36356         month-multiple-fields-appearance-l10n.html
36357
36358         * css/html.css:
36359         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36360         (input[type="datetime"]): Ditto.
36361         (input[type="datetime-local"]): Ditto.
36362         (input[type="month"]): Ditto.
36363         (input[type="time"]): Ditto.
36364         (input[type="week"]): Ditto.
36365         (input[type="week"]::-webkit-inner-spin-button):
36366         Use -webkit-margin-start. Also use an integral pixel size instead of
36367         avoid a fractional relative size to avoid subpixel layout rounding.
36368
36369 2012-10-23  Dan Bernstein  <mitz@apple.com>
36370
36371         The font cache evicts inactive font data too aggressively when not under memory pressure
36372         https://bugs.webkit.org/show_bug.cgi?id=100194
36373
36374         Reviewed by Sam Weinig.
36375
36376         Increasing the number of inactive font data objects the cache may hold increases the hit
36377         rate, leading to improved page load performance. When memory pressure is detected,
36378         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36379         increasing here.
36380
36381         * platform/graphics/FontCache.cpp:
36382         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36383         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36384
36385 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36386
36387         [Shadow DOM] Needs @host rule for ShadowDOM styling
36388         https://bugs.webkit.org/show_bug.cgi?id=88606
36389
36390         Reviewed by Hajime Morita.
36391
36392         Implemented @host-@rules according to the shadow dom spec:
36393         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36394         The design doc is:
36395         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36396
36397         Test: fast/dom/shadow/athost-atrules.html
36398
36399         * css/CSSGrammar.y.in:
36400         Added rules for parsing @host @-rules.
36401         * css/CSSParser.cpp:
36402         (WebCore::CSSParser::detectAtToken):
36403         Added a new token "@host".
36404         (WebCore::CSSParser::createHostRule):
36405         Added a new method to create an @host @-rule, which is invoked from
36406         (WebCore):
36407         * css/CSSParser.h:
36408         Added a declaration of the above new method: createHostRule.
36409         * css/CSSPropertySourceData.h:
36410         Added HOST_RULE to enum Type.
36411         * css/RuleSet.cpp:
36412         (WebCore::RuleData::RuleData):
36413         Modified multiple bool arguments into one argument. Now it
36414         uses combinations of values from enum AddRuleFlags.
36415         (WebCore::RuleSet::addRule):
36416         (WebCore::RuleSet::addRegionRule):
36417         (WebCore::RuleSet::addStyleRule):
36418         Updated according to the RuleData's change.
36419         Modified to Invoke increaseSpecificity if the given rule is @host
36420         @-rule.
36421         (WebCore::RuleSet::addRulesFromSheet):
36422         Invoked addHostRule if the given rule is @host @-rule.
36423         * css/RuleSet.h:
36424         (RuleData):
36425         (WebCore::RuleData::increaseSpecificity):
36426         Added a new method to increase selector's specificity. This method is
36427         used to make @host @-rules' specificity larger than normal author
36428         rules' specificity.
36429         (RuleSet):
36430         * css/StyleResolver.cpp:
36431         (WebCore::makeRuleSet):
36432         (WebCore::StyleResolver::addHostRule):
36433         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36434         is used to make only StyleResolver know an implementation detail about
36435         class StyleScopeResolver.
36436         (WebCore::StyleResolver::appendAuthorStylesheets):
36437         Updated according to the RuleData's change.
36438         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36439         A new method to find matched host rules when an element is given.
36440         This method invokes
36441         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36442         matched host rules.
36443         (WebCore):
36444         (WebCore::StyleResolver::matchHostRules):
36445         A new method to find matched host rules when an element is given.
36446         This method invokes StyleScopeResolver::matchHostRules to find
36447         matched host rules.
36448         (WebCore::StyleResolver::matchScopedAuthorRules):
36449         Modified to invoke matchHostRules.
36450         (WebCore::StyleResolver::locateSharedStyle):
36451         Disable sibling style cache if the given element is a shadow host and
36452         any @host @-rules are applied to the element.
36453         * css/StyleResolver.h:
36454         (WebCore::StyleResolver::ensureScopeResolver):
36455         If no scopeResolver is created, create and return the instance.
36456         If created, just return the instance.
36457         (StyleResolver):
36458         * css/StyleRule.cpp:
36459         (WebCore::StyleRuleBase::reportMemoryUsage):
36460         (WebCore::StyleRuleBase::destroy):
36461         (WebCore::StyleRuleBase::copy):
36462         (WebCore::StyleRuleBase::createCSSOMWrapper):
36463         (WebCore::StyleRuleHost::StyleRuleHost):
36464         Implemented class StyleRuleHost. The class is almost the same as
36465         StyleRuleBlock except type.
36466         (WebCore):
36467         * css/StyleRule.h:
36468         (WebCore::StyleRuleBase::isHostRule):
36469         (StyleRuleHost):
36470         (WebCore::StyleRuleHost::create):
36471         (WebCore::StyleRuleHost::copy):
36472         (WebCore):
36473         * css/StyleScopeResolver.cpp:
36474         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36475         A new method to create a new RuleSet for the given shadow root.
36476         (WebCore):
36477         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36478         A new private inline method to obtain @host @-rules declared in
36479         the given shadow root.
36480         (WebCore::StyleScopeResolver::addHostRule):
36481         Added a new method to register @host @-rules with shadow roots.
36482         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36483         A new method to find whether any @host @-rules are applied to
36484         the given host element.
36485         (WebCore::StyleScopeResolver::matchHostRules):
36486         A new method to find matched rules for the given host element.
36487         (WebCore::StyleScopeResolver::reportMemoryUsage):
36488         * css/StyleScopeResolver.h:
36489         (WebCore):
36490         (StyleScopeResolver):
36491         * css/StyleSheetContents.cpp:
36492         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36493
36494 2012-10-23  Andreas Kling  <kling@webkit.org>
36495
36496         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36497         <http://webkit.org/b/100065>
36498
36499         Reviewed by Anders Carlsson.
36500
36501         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36502         collisions. This will need a proper fix at some point.
36503
36504         * plugins/PluginDatabase.h:
36505         * plugins/PluginPackage.h:
36506         (PluginPackageHashTraits):
36507
36508 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36509
36510         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36511         https://bugs.webkit.org/show_bug.cgi?id=100159
36512
36513         Reviewed by Tim Horton.
36514
36515         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36516         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36517
36518         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36519
36520         * page/Frame.h:
36521         * platform/graphics/GraphicsLayer.cpp:
36522         (showGraphicsLayerTree):
36523         * platform/graphics/GraphicsLayer.h:
36524         (WebCore::GraphicsLayer::tiledBacking):
36525         * platform/graphics/TiledBacking.h:
36526         * platform/graphics/ca/GraphicsLayerCA.cpp:
36527         (WebCore::GraphicsLayerCA::tiledBacking):
36528         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36529         * platform/graphics/ca/GraphicsLayerCA.h:
36530         (GraphicsLayerCA):
36531         * platform/graphics/ca/mac/TileCache.h:
36532         (WebCore::TileCache::tileCoverageRect):
36533         (TileCache):
36534         * platform/graphics/ca/mac/TileCache.mm:
36535         (WebCore::TileCache::computeTileCoverageRect):
36536         (WebCore::TileCache::revalidateTiles):
36537         * rendering/RenderLayerCompositor.cpp:
36538         (WebCore::RenderLayerCompositor::layerTreeAsText):
36539         * testing/Internals.cpp:
36540         (WebCore::Internals::layerTreeAsText):
36541         * testing/Internals.h:
36542         * testing/Internals.idl:
36543
36544 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36545
36546         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36547         https://bugs.webkit.org/show_bug.cgi?id=100187
36548         <rdar://problem/12546770>
36549
36550         Reviewed by Dan Bernstein.
36551
36552         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36553         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36554         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36555         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36556         that require frequent flushing, such as those running animated GIFs.
36557         
36558         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36559         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36560         
36561         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36562
36563         * rendering/RenderLayerCompositor.cpp:
36564         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36565         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36566         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36567         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36568         saying that we're the flush root.
36569         * rendering/RenderLayerCompositor.h:
36570         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36571
36572 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36573
36574         Unreviewed, rolling out r132276.
36575         http://trac.webkit.org/changeset/132276
36576         https://bugs.webkit.org/show_bug.cgi?id=100189
36577
36578         It broke the Qt-WK2 build intentionally (Requested by
36579         Ossy_night on #webkit).
36580
36581         * page/Frame.h:
36582         * platform/graphics/GraphicsLayer.cpp:
36583         (showGraphicsLayerTree):
36584         * platform/graphics/GraphicsLayer.h:
36585         (WebCore::GraphicsLayer::tiledBacking):
36586         * platform/graphics/TiledBacking.h:
36587         * platform/graphics/ca/GraphicsLayerCA.cpp:
36588         (WebCore::GraphicsLayerCA::tiledBacking):
36589         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36590         * platform/graphics/ca/GraphicsLayerCA.h:
36591         (GraphicsLayerCA):
36592         * platform/graphics/ca/mac/TileCache.h:
36593         * platform/graphics/ca/mac/TileCache.mm:
36594         (WebCore::TileCache::tileCoverageRect):
36595         (WebCore::TileCache::revalidateTiles):
36596         * rendering/RenderLayerCompositor.cpp:
36597         (WebCore::RenderLayerCompositor::layerTreeAsText):
36598         * testing/Internals.cpp:
36599         (WebCore::Internals::layerTreeAsText):
36600         * testing/Internals.h:
36601         * testing/Internals.idl:
36602
36603 2012-10-23  Philip Rogers  <pdr@google.com>
36604
36605         Add extra check for data() in PageSerializer.
36606         https://bugs.webkit.org/show_bug.cgi?id=99102
36607
36608         Reviewed by Eric Seidel.
36609
36610         The image returned from imageForRenderer() does not contain the raw SVG data
36611         so this patch adds a check for image->image()->data() before writing SVG
36612         in PageSerializer::addImageToResources.
36613
36614         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36615
36616         * page/PageSerializer.cpp:
36617         (WebCore::PageSerializer::addImageToResources):
36618
36619 2012-10-23  Kent Tamura  <tkent@chromium.org>
36620
36621         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36622         https://bugs.webkit.org/show_bug.cgi?id=100129
36623
36624         Reviewed by Kentaro Hara.
36625
36626         We're going to use appendAsLDMLLiteral in other code, and it is
36627         related to DateTimeFormat class.  So we move it to DateTimeFormat
36628         class as quoteAndAppendLiteral.
36629
36630         No new tests because of no behavior change.
36631
36632         * platform/text/DateTimeFormat.cpp:
36633         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36634         Moved from LocaleWin.cpp
36635         * platform/text/DateTimeFormat.h:
36636         Declare StringBuilder by wtf/Forward.h. It also declares String.
36637         (DateTimeFormat): Declare quoteAndAppendLiteral.
36638         * platform/text/LocaleWin.cpp:
36639         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36640         (WebCore::convertWindowsDateFormatToLDML):
36641         Follow the moving.
36642
36643 2012-10-23  Kent Tamura  <tkent@chromium.org>
36644
36645         REGRESSION(r131421): Text baseline is not aligned in some locales
36646         https://bugs.webkit.org/show_bug.cgi?id=100088
36647
36648         Reviewed by Hajime Morita.
36649
36650         Before this patch, the element with ::-webkit-datetime-edit had
36651         -webkit-align-items:center. It was incorrect at all because it
36652         ignores baselines of each of inner fields. We need to change it to
36653         -webkit-align-items:baseline, or stop using -webkit-flex.
36654
36655         However -webkit-align-items:baseline doesn't work because a spin
36656         button element in the element doesn't have the baseline. If we
36657         specified -webkit-align-items:baseline, the spin button would
36658         shift up.
36659
36660         So, we change the element structure for multiple fields input
36661         elements. Before this patch, the structure was:
36662
36663         input
36664           |
36665            - ::-webkit-date-and-time-container (flex cotainer)
36666              |
36667              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36668              |  |- ::-webkit-datetime-edit-foo
36669              |  |      :
36670              |  |
36671              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36672              |   - ::-webkit-inne-spin-button
36673               - ::-webkit-calendar-picker-indicator
36674
36675         After the patch, the structure will be:
36676
36677         input
36678           |
36679            - ::-webkit-date-and-time-container (flexible box)
36680              |
36681              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36682              |  |- ::-webkit-datetime-edit-foo
36683              |  |      :
36684              |  |
36685              |
36686              |- ::-webkit-inne-spin-button
36687               - ::-webkit-calendar-picker-indicator
36688
36689         Because the spin button owner is date-and-time-container, we don't
36690         need to make the datetime-edit element a flex container.
36691
36692         Also, we had rounding error by subpixel layout. To avoid it, we
36693         stop using fractional paddings.
36694
36695         In order to implement this, we need to change the SpinButtonOwner
36696         interface provider from DateTimeEditElement to
36697         BaseMultipleFieldsDateAndTimeInputType.
36698
36699         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36700
36701         * css/html.css:
36702         (input::-webkit-datetime-edit): Stop making this a flex
36703         container. Inner fields in this use the single baseline.
36704         (input::-webkit-datetime-edit-ampm-field):
36705         Don't use fractional paddings to avoid rounding erros of subpixel
36706         layout.  Use integral margin instead to avoid overwrap of focus
36707         ring and background-color of the field.
36708         (input::-webkit-datetime-edit-day-field): Ditto.
36709         (input::-webkit-datetime-edit-hour-field): Ditto.
36710         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36711         (input::-webkit-datetime-edit-minute-field): Ditto.
36712         (input::-webkit-datetime-edit-month-field): Ditto.
36713         (input::-webkit-datetime-edit-second-field): Ditto.
36714         (input::-webkit-datetime-edit-week-field): Ditto.
36715         (input::-webkit-datetime-edit-year-field): Ditto.
36716         (input::-webkit-date-and-time-container): Ditto.
36717
36718         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36719         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36720         SpinButtonOwner functions, and add m_spinButtonElement.
36721         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36722         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36723         Just delegate to DateTimeEditElement::focusIfNoFocus.
36724         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36725         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36726         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36727         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36728         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36729         Delegate to DateTimeEditElement::stepDown.
36730         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36731         Delegate to DateTimeEditElement::stepUp.
36732         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36733         Initialize m_spinButtonElement.
36734         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36735         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36736         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36737         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36738         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36739         Take care of SpinButtonElement.
36740         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36741         Release capture of SpinButtonElement. This corresponds to the old
36742         code of DateTimeEditElement::updateUIState.
36743         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36744
36745         * html/TextFieldInputType.h:
36746         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36747
36748         * html/shadow/DateTimeEditElement.h:
36749         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36750         m_spinButton, and rename some functions.
36751         * html/shadow/DateTimeEditElement.cpp:
36752         (WebCore::DateTimeEditElement::DateTimeEditElement):
36753         Remove m_spinButton.
36754         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36755         (WebCore::DateTimeEditElement::focusIfNoFocus):
36756         Renamed from focusAndSelectSpinButtonOwner. This is called
36757         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36758         (WebCore::DateTimeEditElement::layout):
36759         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36760         (WebCore::DateTimeEditElement::defaultEventHandler):
36761         Move the code for m_spinButton to
36762         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36763         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36764         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36765         (WebCore::DateTimeEditElement::stepDown): A helper for
36766         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36767         (WebCore::DateTimeEditElement::stepUp): A helper for
36768         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36769         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36770         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36771         and readonlyAttributeChanged.
36772
36773 2012-10-23  Andreas Kling  <kling@webkit.org>
36774
36775         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36776         <http://webkit.org/b/100123>
36777
36778         Reviewed by Anders Carlsson.
36779
36780         Remove one pointer of unintentional padding in the immutable versions of these objects.
36781         583kB progression on Membuster3.
36782
36783         * css/StylePropertySet.cpp:
36784         (WebCore::immutableStylePropertySetSize):
36785         * dom/ElementAttributeData.cpp:
36786         (WebCore::immutableElementAttributeDataSize):
36787
36788 2012-10-23  Nate Chapin  <japhet@chromium.org>
36789
36790         Crash in WebCore::SubresourceLoader::willSendRequest.
36791         https://bugs.webkit.org/show_bug.cgi?id=100147
36792
36793         Reviewed by Abhishek Arya.
36794
36795         No new tests. There is a test case that should cover this, but it doesn't
36796         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36797         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36798         Tested manually on http://www.nick.co.uk/shows/spongebob
36799
36800         * loader/SubresourceLoader.cpp:
36801         (WebCore::SubresourceLoader::willSendRequest):
36802
36803 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36804
36805         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36806         https://bugs.webkit.org/show_bug.cgi?id=99351
36807
36808         Reviewed by Carlos Garcia Campos.
36809
36810         Instead of connecting to the SoupSession::authenticate signal in the API layer
36811         via a SoupSessionFeature, route the message through the typical WebCore authentication
36812         mechanism. This is a step on the path to having full-blown support for authentication
36813         in the API allowing for custom authentication dialogs and behavior in clients.
36814
36815         No new tests. This should not change behavior.
36816
36817         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36818         * loader/ResourceLoader.cpp:
36819         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36820         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36821         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36822         is destroyed.
36823         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36824         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36825         * platform/network/ResourceHandleInternal.h:
36826         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36827         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36828         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36829         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36830         * platform/network/soup/ResourceError.h:
36831         (ResourceError): Added a factory for authentication errors.
36832         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36833         * platform/network/soup/ResourceHandleSoup.cpp:
36834         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36835         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36836         It's always used now.
36837         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36838         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36839         the authentication challenge to the client.
36840         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36841         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36842         (WebCore::authenicateCallback): Added.
36843         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36844
36845 2012-10-23  Adam Barth  <abarth@webkit.org>
36846
36847         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36848         https://bugs.webkit.org/show_bug.cgi?id=100157
36849
36850         Reviewed by Eric Seidel.
36851
36852         This patch removes the traits template parameter from GCEpilogueVisitor
36853         and makes it mirror GCPrologueVisitor again.
36854
36855         * bindings/v8/V8GCController.cpp:
36856         (WebCore):
36857         (ActiveDOMObjectEpilogueVisitor):
36858         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36859         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36860         (WebCore::V8GCController::majorGCEpilogue):
36861
36862 2012-10-23  Varun Jain  <varunjain@chromium.org>
36863
36864         Context menu generated from touch gestures on textareas has
36865         context of the cursor position instead of the position where the event occurs.
36866         https://bugs.webkit.org/show_bug.cgi?id=99520
36867
36868         Reviewed by Kenneth Rohde Christiansen.
36869
36870         Send a synthetic mouse down event for context menu-summoning-gesture events so
36871         that textareas can correctly set cursors before receiving the context menu event.
36872
36873         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36874
36875         * page/EventHandler.cpp:
36876         (WebCore::EventHandler::handleGestureEvent):
36877         (WebCore::EventHandler::handleGestureTwoFingerTap):
36878         (WebCore):
36879         (WebCore::EventHandler::sendContextMenuEventForGesture):
36880         * page/EventHandler.h:
36881         (EventHandler):
36882
36883 2012-10-23  Andy Estes  <aestes@apple.com>
36884
36885         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36886         https://bugs.webkit.org/show_bug.cgi?id=100162
36887
36888         Reviewed by Sam Weinig.
36889
36890         * WebCore.exp.in: Exported symbols needed by WebKit2.
36891         * bindings/objc/DOM.mm:
36892         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36893         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36894         * dom/Node.cpp:
36895         (WebCore::Node::textRects):
36896         * dom/Node.h:
36897
36898 2012-10-23  Adam Barth  <abarth@webkit.org>
36899
36900         [V8] Remove unused function from DOM wrapper visitor
36901         https://bugs.webkit.org/show_bug.cgi?id=100163
36902
36903         Reviewed by Eric Seidel.
36904
36905         No one overrides these virtual functions. They were added in
36906         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36907         controller anymore.
36908
36909         * bindings/v8/V8DOMMap.h:
36910         (WebCore::WeakReferenceMap::visit):
36911
36912 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36913
36914         Clear m_mediaSource reference when the MediaSource is closed
36915         https://bugs.webkit.org/show_bug.cgi?id=100047
36916
36917         Reviewed by Eric Carlson.
36918
36919         The m_mediaSource object shouldn't be accessed after the object
36920         transitions to closed so this change simply clears the reference
36921         when that transition happens.
36922
36923         No new tests because the change isn't visible to JavaScript.
36924
36925         * html/HTMLMediaElement.cpp:
36926         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36927         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36928
36929 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36930
36931         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36932         https://bugs.webkit.org/show_bug.cgi?id=100159
36933
36934         Reviewed by Tim Horton.
36935
36936         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36937         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36938
36939         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36940
36941         * page/Frame.h:
36942         * platform/graphics/GraphicsLayer.cpp:
36943         (showGraphicsLayerTree):
36944         * platform/graphics/GraphicsLayer.h:
36945         (WebCore::GraphicsLayer::tiledBacking):
36946         * platform/graphics/TiledBacking.h:
36947         * platform/graphics/ca/GraphicsLayerCA.cpp:
36948         (WebCore::GraphicsLayerCA::tiledBacking):
36949         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36950         * platform/graphics/ca/GraphicsLayerCA.h:
36951         (GraphicsLayerCA):
36952         * platform/graphics/ca/mac/TileCache.h:
36953         (WebCore::TileCache::tileCoverageRect):
36954         (TileCache):
36955         * platform/graphics/ca/mac/TileCache.mm:
36956         (WebCore::TileCache::computeTileCoverageRect):
36957         (WebCore::TileCache::revalidateTiles):
36958         * rendering/RenderLayerCompositor.cpp:
36959         (WebCore::RenderLayerCompositor::layerTreeAsText):
36960         * testing/Internals.cpp:
36961         (WebCore::Internals::layerTreeAsText):
36962         * testing/Internals.h:
36963         * testing/Internals.idl:
36964
36965 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
36966
36967         Coordinated Graphics: Enable threaded/IPC animations
36968         https://bugs.webkit.org/show_bug.cgi?id=93146
36969
36970         Reviewed by Kenneth Rohde Christiansen.
36971
36972         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
36973         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
36974         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
36975
36976         Covered by existing animation and compositing tests.
36977
36978         * platform/graphics/GraphicsLayerAnimation.cpp:
36979         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
36980             Initialize the animation with the startTime instead of the offset.
36981
36982         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
36983         * platform/graphics/GraphicsLayerAnimation.h:
36984         (WebCore::GraphicsLayerAnimation::setState):
36985             Allow setting the pause time as well.
36986
36987         (WebCore::GraphicsLayerAnimation::boxSize):
36988         (WebCore::GraphicsLayerAnimation::startTime):
36989         (WebCore::GraphicsLayerAnimation::pauseTime):
36990         (WebCore::GraphicsLayerAnimation::animation):
36991         (WebCore::GraphicsLayerAnimation::keyframes):
36992         (WebCore::GraphicsLayerAnimation::listsMatch):
36993         (WebCore::GraphicsLayerAnimations::size):
36994         (WebCore::GraphicsLayerAnimations::animations):
36995             Add public accessors to GraphicsLayerAnimation properties.
36996
36997         (GraphicsLayerAnimation):
36998         (GraphicsLayerAnimations):
36999         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
37000         (WebCore::GraphicsLayerTextureMapper::addAnimation):
37001         (WebCore::GraphicsLayerTextureMapper::setAnimations):
37002             Allow replacing the entire list of animations.
37003
37004         (WebCore):
37005         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
37006         (GraphicsLayerTextureMapper):
37007         * platform/graphics/texmap/TextureMapperLayer.cpp:
37008         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
37009         (WebCore):
37010         * platform/graphics/texmap/TextureMapperLayer.h:
37011         (TextureMapperLayer):
37012
37013 2012-10-23  Chris Rogers  <crogers@google.com>
37014
37015         Change setTargetValueAtTime() to setTargetAtTime()
37016         https://bugs.webkit.org/show_bug.cgi?id=100153
37017
37018         Reviewed by Adam Barth.
37019
37020         The AudioParam method name has changed due to Web Audio API spec review.
37021         Keep legacy support for the old name.
37022
37023         Test: webaudio/audioparam-setTargetAtTime.html
37024
37025         * Modules/webaudio/AudioParam.h:
37026         (WebCore::AudioParam::setTargetAtTime):
37027         * Modules/webaudio/AudioParam.idl:
37028         * Modules/webaudio/AudioParamTimeline.cpp:
37029         (WebCore::AudioParamTimeline::setTargetAtTime):
37030         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
37031         * Modules/webaudio/AudioParamTimeline.h:
37032         (AudioParamTimeline):
37033
37034 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37035
37036         [Mac] Remove extraneous conversion to String->NSString
37037         https://bugs.webkit.org/show_bug.cgi?id=100044
37038
37039         Reviewed by Darin Adler.
37040
37041         Improve some unfortunate use of String->NSString.
37042
37043         * accessibility/mac/AXObjectCacheMac.mm:
37044         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
37045         needed as NSString, and all its value are or can be NSString.
37046         Convert the last 3 char* values to NSString literal and use NSString* all the way.
37047
37048         * loader/mac/LoaderNSURLExtras.h:
37049         * loader/mac/LoaderNSURLExtras.mm:
37050         (suggestedFilenameWithMIMEType):
37051         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
37052         for the string to be a NSSTring there, we can leave it in its original type.
37053
37054         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
37055
37056         * platform/mac/DragImageMac.mm:
37057         (WebCore::createDragImageForLink):
37058         Use String's nsStringNilIfEmpty().
37059
37060         * platform/mac/HTMLConverter.mm:
37061         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
37062         Fix the coding style. Do the conversion to NSString only when needed.
37063
37064 2012-10-23  Roger Fong  <roger_fong@apple.com>
37065
37066         [Win] Popup menus positioning needs to take multiple monitors into account.
37067         https://bugs.webkit.org/show_bug.cgi?id=100158
37068
37069         Reviewed by Timothy Horton.
37070
37071         Add screen.x() to repositioning check to account for position of current monitor.
37072
37073         * platform/win/PopupMenuWin.cpp:
37074         (WebCore::PopupMenuWin::calculatePositionAndSize):
37075
37076 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37077
37078         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
37079         https://bugs.webkit.org/show_bug.cgi?id=99908
37080
37081         Reviewed by Dean Jackson.
37082
37083         CSS Shaders can not render anything until the program is loaded. If there is
37084         partial loaded shaders program, whole FilterOperations chain can not render
37085         anything. It occurs a flash. So We have to wait until the program is loaded, to
37086         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
37087         image is fully loaded.
37088
37089         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
37090
37091         * rendering/RenderLayerBacking.cpp:
37092         (WebCore::RenderLayerBacking::updateFilters):
37093
37094 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
37095
37096         Generated should not be supported for things with a shadow
37097         https://bugs.webkit.org/show_bug.cgi?id=98836
37098
37099         Reviewed by Dimitri Glazkov.
37100
37101         As far as CSS is concerned inputs and things with shadow content inside
37102         shouldn't support pseudo elements like :before, :after or :first-letter.
37103         Neither Gecko or Presto supports it, and we only accidentally supported
37104         it.
37105
37106         Until the spec tells us what to do we should disable support. This is
37107         also neccesary because the new generated content implementation doesn't
37108         support shadows.
37109
37110         Test: fast/forms/pseudo-elements.html
37111
37112         * rendering/RenderBlock.cpp:
37113         (WebCore::RenderBlock::updateFirstLetter):
37114         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37115         * rendering/RenderObjectChildList.cpp:
37116         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37117
37118 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37119
37120         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37121         https://bugs.webkit.org/show_bug.cgi?id=98504
37122
37123         Reviewed by Dean Jackson.
37124
37125         Add expressions for the aforementioned blend modes. The expressions are lifted
37126         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37127         blending expressions to the author's shader.
37128
37129         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37130
37131         Test: css3/filters/custom/custom-filter-blend-modes.html
37132
37133         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37134         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37135         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37136
37137 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37138
37139         [CSS Shaders] Implement all composite operators except destination and lighter.
37140         https://bugs.webkit.org/show_bug.cgi?id=97859
37141
37142         Reviewed by Dean Jackson.
37143
37144         Add expressions for all composite operators except destination and
37145         lighter. The expressions are lifted directly from the CSS Compositing
37146         and Blending spec [1]. WebKit adds these compositing expressions to the
37147         author's shader.
37148
37149         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37150
37151         Test: css3/filters/custom/custom-filter-composite-operators.html
37152
37153         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37154         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37155             Remove ASSERTION checking if glGetUniformLocation returns negative,
37156             because ASSERTION can fail with clear and copy composite operations.
37157             Clear and copy composite operations do not need "css_u_texture"
37158             representing the DOM element texture. If the driver compiler is
37159             smart, "css_u_texture" is not regarded as an active uniform, so
37160             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37161         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37162         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37163             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37164             ASSERTION checks if m_samplerLocation is not -1 when the author
37165             shader needs an input texture.
37166         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37167         (WebCore):
37168         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37169         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37170         (CustomFilterValidatedProgram):
37171
37172 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37173
37174         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37175         https://bugs.webkit.org/show_bug.cgi?id=99887
37176
37177         Reviewed by Dirk Schulze.
37178
37179         Before this patch, WebKit would not recompute an element's style when just its custom filter
37180         blend mode changed.
37181
37182         For example, suppose an element initially has the style:
37183         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37184
37185         Then, we change the blend mode from "multiply" to "normal":
37186         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37187
37188         WebKit now detects this change and recomputes the style.
37189
37190         CustomFilterProgram now has an equals operator that considers the program type and the mix
37191         settings. The mix settings contain the blend mode.
37192
37193         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37194
37195         * platform/graphics/filters/CustomFilterProgram.cpp:
37196         (WebCore::CustomFilterProgram::operator==):
37197             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37198             CustomFilterProgram implements it and compares the program type and mix settings, if
37199             appropriate.
37200         (WebCore):
37201         * platform/graphics/filters/CustomFilterProgram.h:
37202         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37203         (WebCore::CustomFilterProgramInfo::hash):
37204             Refactor a repeated condition into a boolean to improve readability.
37205         (WebCore::CustomFilterProgramInfo::operator==):
37206             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37207             expensive ones occur first.
37208         * rendering/style/StyleCustomFilterProgram.h:
37209         (WebCore::StyleCustomFilterProgram::operator==):
37210             Call the base class's equals operator.
37211
37212 2012-10-23  David Barton  <dbarton@mathscribe.com>
37213
37214         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37215         https://bugs.webkit.org/show_bug.cgi?id=99921
37216
37217         Reviewed by Eric Seidel.
37218
37219         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37220         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37221         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37222         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37223         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37224
37225         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37226
37227         * css/mathml.css:
37228         (math, mfenced > *):
37229             - Set font-family for mn, mi, etc.
37230         (mo, mfenced):
37231             - Set font-family for mo and anonymous operators, including extension glyphs for
37232               stretched operators like parentheses and brackets.
37233         (math):
37234         * rendering/mathml/RenderMathMLOperator.cpp:
37235         (WebCore):
37236             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37237         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37238         (WebCore::RenderMathMLOperator::updateFromElement):
37239         (WebCore::RenderMathMLOperator::createStackableStyle):
37240             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37241               of 14.
37242         (WebCore::RenderMathMLOperator::createGlyph):
37243             - Eliminate unused lineHeight and topRelative parameters.
37244         * rendering/mathml/RenderMathMLOperator.h:
37245         (RenderMathMLOperator):
37246
37247 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37248
37249         WTFURL: Implement KURL::setPort()
37250         https://bugs.webkit.org/show_bug.cgi?id=99898
37251
37252         Reviewed by Adam Barth.
37253
37254         * platform/KURLWTFURL.cpp:
37255         (WebCore::KURL::setPort):
37256
37257 2012-10-23  Nico Weber  <thakis@chromium.org>
37258
37259         In the open-source jpeg decoder, read image orientation from the exif data
37260         https://bugs.webkit.org/show_bug.cgi?id=100144
37261
37262         Reviewed by Eric Seidel.
37263
37264         This will be used to implement the shouldRespectImageOrientation
37265         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37266         it has no observable effect for now.
37267
37268         Once it's hooked up, it will be tested by
37269         fast/images/exif-orientation.html
37270
37271         * platform/graphics/BitmapImage.h:
37272         * platform/image-decoders/ImageDecoder.h:
37273         (WebCore::ImageDecoder::orientation):
37274         (ImageDecoder):
37275         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37276         (WebCore::readUint16):
37277         (WebCore):
37278         (WebCore::readUint32):
37279         (WebCore::checkExifHeader):
37280         (WebCore::readImageOrientation):
37281         (WebCore::JPEGImageReader::JPEGImageReader):
37282         (WebCore::JPEGImageReader::decode):
37283         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37284         (WebCore::JPEGImageDecoder::setOrientation):
37285
37286 2012-10-23  Chris Rogers  <crogers@google.com>
37287
37288         Fix thread safety issue in AudioParamTimeline
37289         https://bugs.webkit.org/show_bug.cgi?id=100154
37290
37291         Reviewed by Kenneth Russell.
37292
37293         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37294
37295         * Modules/webaudio/AudioParamTimeline.cpp:
37296         (WebCore::AudioParamTimeline::valueForContextTime):
37297
37298 2012-10-23  Alec Flett  <alecflett@chromium.org>
37299
37300         IndexedDB: refactor backend to use IDB*Metadata
37301         https://bugs.webkit.org/show_bug.cgi?id=100055
37302
37303         Reviewed by Tony Chang.
37304
37305         This further encapsulates the static data in
37306         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37307         respective IDB*Metadata structs, in preparation for
37308         https://bugs.webkit.org/show_bug.cgi?id=99774.
37309
37310         No new tests as this is purely a refactor.
37311
37312         * Modules/indexeddb/IDBBackingStore.h:
37313         (IDBBackingStore):
37314         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37315         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37316         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37317         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37318         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37319         (WebCore::IDBIndexBackendImpl::metadata):
37320         * Modules/indexeddb/IDBIndexBackendImpl.h:
37321         (WebCore::IDBIndexBackendImpl::create):
37322         (WebCore::IDBIndexBackendImpl::id):
37323         (WebCore::IDBIndexBackendImpl::setId):
37324         (WebCore::IDBIndexBackendImpl::hasValidId):
37325         (WebCore::IDBIndexBackendImpl::name):
37326         (WebCore::IDBIndexBackendImpl::keyPath):
37327         (WebCore::IDBIndexBackendImpl::unique):
37328         (WebCore::IDBIndexBackendImpl::multiEntry):
37329         (IDBIndexBackendImpl):
37330         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37331         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37332         (WebCore::IDBLevelDBBackingStore::getIndexes):
37333         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37334         (IDBLevelDBBackingStore):
37335         * Modules/indexeddb/IDBMetadata.h:
37336         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37337         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37338         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37339         (WebCore::IDBObjectStoreBackendImpl::metadata):
37340         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37341         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37342         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37343         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37344         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37345         (WebCore::IDBObjectStoreBackendImpl::create):
37346         (WebCore::IDBObjectStoreBackendImpl::id):
37347         (WebCore::IDBObjectStoreBackendImpl::setId):
37348         (WebCore::IDBObjectStoreBackendImpl::name):
37349         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37350         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37351         (IDBObjectStoreBackendImpl):
37352
37353 2012-10-19  Roger Fong  <roger_fong@apple.com>
37354
37355         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37356         https://bugs.webkit.org/show_bug.cgi?id=94041
37357
37358         Reviewed by Dean Jackson.
37359
37360         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37361         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37362         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37363         has already been deleted we end up in an error state.
37364
37365         Tested using Khronos WebGL conformance suite:
37366         conformance/textures/texture-size.html
37367
37368         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37369         (WebCore::GraphicsContext3D::deleteTexture):
37370
37371 2012-10-22  Dirk Schulze  <krit@webkit.org>
37372
37373         BasicShapePolygon::path takes width instead of height for boundary calculation
37374         https://bugs.webkit.org/show_bug.cgi?id=99919
37375
37376         Reviewed by Darin Adler.
37377
37378         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37379         This caused problems on percentage values for point positions. 
37380         Changed it to the height of the bounding box.
37381
37382         Test: css3/masking/clip-path-polygon-percentage.html
37383
37384         * rendering/style/BasicShapes.cpp:
37385         (WebCore::BasicShapePolygon::path):
37386
37387 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37388
37389         Add timeout support to XMLHttpRequest
37390         https://bugs.webkit.org/show_bug.cgi?id=74802
37391
37392         Reviewed by Nate Chapin.
37393
37394         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37395         This made several changes necessary in CachedResource and SubresourceLoader in order
37396         to distinguish and forward the timeout case from there.
37397
37398         The case of late updates to the timeout property, changing the timeout value after send()
37399         is not supported yet and handled separately in bug 98156.
37400
37401         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37402         permission to reuse them under PD/BSD license
37403         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37404         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37405         so that they can be used as WebKit layout tests.
37406
37407         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37408                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37409                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37410                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37411                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37412                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37413                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37414                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37415                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37416                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37417                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37418
37419         * loader/DocumentThreadableLoader.cpp:
37420         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37421         * loader/SubresourceLoader.cpp:
37422         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37423         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37424         (WebCore::CachedResource::errorOccurred):
37425         (WebCore::CachedResource::loadFailedOrCanceled):
37426         (WebCore::CachedResource::timedOut):
37427         * xml/XMLHttpRequest.cpp:
37428         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37429         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37430         (WebCore):
37431         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37432         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37433         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37434         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37435         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37436         (WebCore::XMLHttpRequest::timeout):
37437         (XMLHttpRequest):
37438         * xml/XMLHttpRequest.idl: New event listener and property added.
37439         * xml/XMLHttpRequestException.cpp:
37440         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37441
37442
37443 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37444
37445         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37446         https://bugs.webkit.org/show_bug.cgi?id=99967
37447
37448         Reviewed by Tony Chang.
37449
37450         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37451         pressing the left mouse button outside a multiselect and then moving the cursor
37452         over the multiselect element while holding the button down.
37453
37454         The issue is that the HTMLSelectElement handler for the mouse move event does
37455         not check if there is a selection before trying to extend the selection.
37456
37457         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37458
37459         * html/HTMLSelectElement.cpp:
37460         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37461
37462 2012-10-23  Adam Barth  <abarth@webkit.org>
37463
37464         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37465         https://bugs.webkit.org/show_bug.cgi?id=97974
37466
37467         Reviewed by Eric Seidel.
37468
37469         Previously, we stored a pointer to a handle to a wrapper in Node. That
37470         is an extra layer of indirection that slows down finding the wrapper
37471         for the node. A handle is just a pointer, so we might as we just store
37472         the handle in the Node directly. That speeds up dom-modify and
37473         dom-traverse by about 2.5%.
37474
37475         This change also lets us get rid of the ChunkedTable we were using to
37476         store all the wrappers because they're now stored in the Nodes
37477         directly.
37478
37479         * bindings/scripts/CodeGeneratorV8.pm:
37480         (GenerateHeader):
37481         * bindings/v8/IntrusiveDOMWrapperMap.h:
37482         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37483         (WebCore::IntrusiveDOMWrapperMap::get):
37484         (WebCore::IntrusiveDOMWrapperMap::set):
37485         (WebCore::IntrusiveDOMWrapperMap::contains):
37486         (WebCore::IntrusiveDOMWrapperMap::visit):
37487         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37488         (WebCore::IntrusiveDOMWrapperMap::clear):
37489         * bindings/v8/ScriptWrappable.h:
37490         (WebCore::ScriptWrappable::ScriptWrappable):
37491         (WebCore::ScriptWrappable::wrapper):
37492         (WebCore::ScriptWrappable::setWrapper):
37493         (WebCore::ScriptWrappable::disposeWrapper):
37494         (WebCore::ScriptWrappable::reportMemoryUsage):
37495         (ScriptWrappable):
37496         * bindings/v8/V8DOMWrapper.h:
37497         (WebCore::V8DOMWrapper::getCachedWrapper):
37498
37499 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37500
37501         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37502         https://bugs.webkit.org/show_bug.cgi?id=100140
37503
37504         Reviewed by Adam Barth.
37505
37506         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37507         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)
37508         Instead we should use AddGCPrologueCallback()
37509         and AddGCEpilogueCallback().
37510
37511         No tests. No change in behavior.
37512
37513         * bindings/v8/V8DOMWindowShell.cpp:
37514         (WebCore::initializeV8IfNeeded):
37515         * bindings/v8/V8GCController.cpp:
37516         (WebCore::V8GCController::gcPrologue):
37517         (WebCore):
37518         (WebCore::V8GCController::minorGCPrologue):
37519         (WebCore::V8GCController::majorGCPrologue):
37520         (WebCore::V8GCController::gcEpilogue):
37521         (WebCore::V8GCController::minorGCEpilogue):
37522         (WebCore::V8GCController::majorGCEpilogue):
37523         * bindings/v8/V8GCController.h:
37524         (V8GCController):
37525         * bindings/v8/WorkerContextExecutionProxy.cpp:
37526         (WebCore::WorkerContextExecutionProxy::initIsolate):
37527
37528 2012-10-23  Adam Barth  <abarth@webkit.org>
37529
37530         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37531         https://bugs.webkit.org/show_bug.cgi?id=100033
37532
37533         Reviewed by Eric Seidel.
37534
37535         This patch changes how we enumerate nodes during garbage collection.
37536         After this patch, we use V8's list of open handles to enumerate node
37537         wrappers rather than using a separate list that we maintain in WebCore
37538         for this purpose. A future patch will remove the list in WebCore for a
37539         DOM performance gain.
37540
37541         * bindings/js/ScriptProfiler.h:
37542         (WebCore):
37543         (WebCore::ScriptProfiler::visitNodeWrappers):
37544         * bindings/scripts/CodeGeneratorV8.pm:
37545         (GenerateToV8Converters):
37546         * bindings/scripts/test/V8/V8TestNode.cpp:
37547         (WebCore::V8TestNode::wrapSlow):
37548         * bindings/v8/IntrusiveDOMWrapperMap.h:
37549         (WebCore::IntrusiveDOMWrapperMap::set):
37550         * bindings/v8/ScriptProfiler.cpp:
37551         (WebCore::ScriptProfiler::visitNodeWrappers):
37552         * bindings/v8/ScriptProfiler.h:
37553         (WebCore):
37554         (ScriptProfiler):
37555         * bindings/v8/V8DOMMap.cpp:
37556         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37557         (WebCore):
37558         (WebCore::visitAllDOMNodes):
37559         * bindings/v8/V8DOMMap.h:
37560         (WebCore):
37561         (NodeWrapperVisitor):
37562         * bindings/v8/V8DOMWrapper.cpp:
37563         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37564         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37565         * bindings/v8/V8GCController.cpp:
37566         (WebCore::NodeVisitor::visitNodeWrapper):
37567         (WebCore::V8GCController::gcPrologue):
37568         (WebCore::V8GCController::gcEpilogue):
37569         * inspector/BindingVisitors.h:
37570         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37571         * inspector/InspectorMemoryAgent.cpp:
37572         (WebCore):
37573
37574 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37575
37576         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37577         https://bugs.webkit.org/show_bug.cgi?id=99849
37578
37579         Reviewed by Pavel Feldman.
37580
37581         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37582         to store them as a state of InspectorPageAgent
37583
37584         * inspector/InspectorInstrumentation.cpp:
37585         (WebCore):
37586         (WebCore::InspectorInstrumentation::willPaintImpl):
37587         (WebCore::InspectorInstrumentation::didPaintImpl):
37588         * inspector/InspectorInstrumentation.h:
37589         (InspectorInstrumentation):
37590         (WebCore::InspectorInstrumentation::willPaint):
37591         (WebCore::InspectorInstrumentation::didPaint):
37592         * inspector/InspectorPageAgent.cpp:
37593         (WebCore::InspectorPageAgent::didPaint):
37594         * inspector/InspectorPageAgent.h:
37595         * inspector/InspectorTimelineAgent.cpp:
37596         (WebCore::InspectorTimelineAgent::willPaint):
37597         (WebCore::InspectorTimelineAgent::didPaint):
37598         * inspector/InspectorTimelineAgent.h:
37599         (InspectorTimelineAgent):
37600         * inspector/TimelineRecordFactory.cpp:
37601         * inspector/TimelineRecordFactory.h:
37602         (TimelineRecordFactory):
37603         * page/FrameView.cpp:
37604         (WebCore::FrameView::paintContents):
37605         * rendering/RenderLayerBacking.cpp:
37606         (WebCore::RenderLayerBacking::paintContents):
37607
37608 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37609
37610         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37611         https://bugs.webkit.org/show_bug.cgi?id=100131
37612
37613         Reviewed by Vsevolod Vlasov.
37614
37615         Using ceil() - 1 instead of floor() in bucket size calculation.
37616
37617         * inspector/front-end/ObjectPropertiesSection.js:
37618
37619 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37620
37621         The order of resolving distribution in tree composition is wrong.
37622         https://bugs.webkit.org/show_bug.cgi?id=99552
37623
37624         Reviewed by Dimitri Glazkov.
37625
37626         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37627         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37628
37629         Test: fast/dom/shadow/content-reprojection-order.html
37630
37631         * html/shadow/ContentDistributor.cpp:
37632         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37633         Only the first active shadow insertion point can select the rest of contents.
37634         * html/shadow/HTMLContentElement.h:
37635         (HTMLContentElement):
37636         * html/shadow/HTMLShadowElement.cpp:
37637         * html/shadow/HTMLShadowElement.h:
37638         (WebCore::isHTMLShadowElement):
37639         (WebCore):
37640         (WebCore::toHTMLShadowElement):
37641         * html/shadow/InsertionPoint.h:
37642         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37643
37644 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37645
37646         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37647         https://bugs.webkit.org/show_bug.cgi?id=100092
37648
37649         Reviewed by Pavel Feldman.
37650
37651         Moved uiSourceCode constructor calls out of mappings to workspace.
37652
37653         * inspector/front-end/CompilerScriptMapping.js:
37654         * inspector/front-end/NetworkUISourceCodeProvider.js:
37655         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37656         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37657         * inspector/front-end/ResourceScriptMapping.js:
37658         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37659         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37660         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37661         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37662         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37663         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37664         * inspector/front-end/SASSSourceMapping.js:
37665         (_bindUISourceCode):
37666         * inspector/front-end/ScriptSnippetModel.js:
37667         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37668         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37669         * inspector/front-end/Workspace.js:
37670         (WebInspector.Project.prototype.addUISourceCode):
37671         (WebInspector.Project.prototype.removeUISourceCode):
37672         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37673         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37674
37675 2012-10-23  Emil A Eklund  <eae@chromium.org>
37676
37677         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37678         https://bugs.webkit.org/show_bug.cgi?id=100018
37679
37680         Reviewed by Julien Chaffraix.
37681         
37682         Remove unnecessary initialization from LayoutState constructor
37683         added in r132105.
37684
37685         No new tests, no change in functionality.
37686
37687         * rendering/LayoutState.cpp:
37688         (WebCore::LayoutState::LayoutState):
37689
37690 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37691
37692         [Texmap] Fix drawTextureRectangleARB after r131485.
37693         https://bugs.webkit.org/show_bug.cgi?id=100133
37694
37695         Consistently rename u_textureSize to u_samplerSize.
37696
37697         Reviewed by Noam Rosenthal.
37698
37699         * platform/graphics/texmap/TextureMapperGL.cpp:
37700         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37701         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37702         (WebCore::getShaderSpec):
37703         * platform/graphics/texmap/TextureMapperShaderManager.h:
37704         (TextureMapperShaderProgram):
37705
37706 2012-10-23  Mike West  <mkwst@chromium.org>
37707
37708         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37709         https://bugs.webkit.org/show_bug.cgi?id=100083
37710
37711         Reviewed by Pavel Feldman.
37712
37713         We recently landed a patch to trim the middle out of long URLs in
37714         console messages in order to improve readability. That patch didn't
37715         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37716         This patch ensures that 'data:' URLs are properly trimmed down to
37717         size.
37718
37719         This problem came to light while resolving a different, smaller issue:
37720         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37721         is included in this patch.
37722
37723         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37724
37725         * inspector/front-end/NetworkManager.js:
37726         (WebInspector.NetworkManager):
37727             Adds 'image/jpg' as a valid image type.
37728         * inspector/front-end/ResourceUtils.js:
37729         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37730             Supports 'data:' URLs in the linkifier's regex.
37731
37732 2012-10-23  Mike West  <mkwst@chromium.org>
37733
37734         Web Inspector: Floated anchor element sometimes overlaps following content.
37735         https://bugs.webkit.org/show_bug.cgi?id=100105
37736
37737         Reviewed by Pavel Feldman.
37738
37739         This patch ensures that each console message clears the
37740         potentially-overlapping floated anchor element.
37741
37742         * inspector/front-end/inspector.css:
37743         (#console-prompt):
37744         (.console-message, .console-user-command):
37745             Clear the float, and flip the border from the bottom of the
37746             message to the top. Do the same for the prompt.
37747         (.console-message:first-child):
37748             Ensure that the first message doesn't have a top border.
37749
37750 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37751
37752         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37753         https://bugs.webkit.org/show_bug.cgi?id=99826
37754
37755         Reviewed by Pavel Feldman.
37756
37757         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37758
37759         Test: inspector/styles/add-new-rule-invalid-selector.html
37760
37761         * inspector/InspectorStyleSheet.cpp:
37762         (WebCore::createCSSParser):
37763         (WebCore):
37764         (WebCore::InspectorStyle::setPropertyText):
37765         (WebCore::checkStyleRuleSelector):
37766         (WebCore::InspectorStyleSheet::addRule):
37767         (WebCore::InspectorStyleSheet::ensureSourceData):
37768         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37769
37770 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37771
37772         Add support for resolution media query
37773         https://bugs.webkit.org/show_bug.cgi?id=99077
37774
37775         Reviewed by Antti Koivisto.
37776
37777         Add support for 'resolution' media query feature.
37778
37779         Background info:
37780         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37781
37782         Related spec links:
37783         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37784         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37785
37786         Add infrastructure to make it testable.
37787
37788         Test: fast/media/mq-resolution.html
37789
37790         * css/CSSParser.cpp:
37791         (WebCore::CSSParser::validUnit):
37792         (WebCore::CSSParser::createPrimitiveNumericValue):
37793         (WebCore::CSSParser::parseValidPrimitive):
37794         (WebCore::CSSParser::detectNumberToken):
37795         * css/CSSParser.h:
37796         * css/CSSPrimitiveValue.cpp:
37797         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37798         (WebCore::unitCategory):
37799         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37800         (WebCore::CSSPrimitiveValue::customCssText):
37801         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37802         * css/CSSPrimitiveValue.h:
37803
37804             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37805             is enabled.
37806
37807         * WebCore.exp.in:
37808
37809             Export the WebCore::Settings setting.
37810
37811         * css/CSSPrimitiveValue.h:
37812         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37813         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37814         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37815         (CSSPrimitiveValue):
37816
37817             Add function for checking the recently added density types.
37818
37819         * css/MediaFeatureNames.h:
37820         (MediaFeatureNames):
37821
37822             Add support for resolution, min-resolution and max-resolution.
37823
37824         * css/MediaQueryEvaluator.cpp:
37825         (WebCore::compareResolution): Add methods for comparing resolutions.
37826         (WebCore):
37827         (WebCore::resolutionMediaFeatureEval):
37828         (WebCore::min_resolutionMediaFeatureEval):
37829         (WebCore::max_resolutionMediaFeatureEval):
37830
37831             Implement the resolution method evaluation.
37832
37833         * css/MediaQueryExp.cpp:
37834         (WebCore::featureWithValidPositiveDensity):
37835         (WebCore):
37836         (WebCore::featureWithoutValue):
37837         (WebCore::MediaQueryExp::MediaQueryExp):
37838
37839             Hook up resolution with the right pre-checks.
37840
37841        * page/Screen.cpp:
37842         (WebCore::Screen::horizontalDPI):
37843         (WebCore::Screen::verticalDPI):
37844
37845             Check whether an override exists, and if so, uses it.
37846             If not calculate the value given the device scale factor.
37847
37848         * page/Settings.cpp:
37849         (WebCore::Settings::setResolutionOverride):
37850         (WebCore):
37851         * page/Settings.h:
37852         (Settings):
37853         (WebCore::Settings::resolutionOverride):
37854
37855             Add a resolution override to settings.
37856
37857         * testing/InternalSettings.cpp:
37858         (WebCore::InternalSettings::Backup::Backup):
37859         (WebCore::InternalSettings::Backup::restoreTo):
37860         (WebCore::InternalSettings::setResolutionOverride):
37861         (WebCore):
37862         * testing/InternalSettings.h:
37863         (Backup):
37864         (InternalSettings):
37865         * testing/InternalSettings.idl:
37866
37867             Add a new setResolutionOverride method to internals.settings.
37868
37869 2012-10-23  Filip Spacek  <fspacek@rim.com>
37870
37871         [BlackBerry] Improve the use of stencil buffer during compositing
37872         https://bugs.webkit.org/show_bug.cgi?id=100020
37873
37874         We always want to scissor so remove the define.
37875         Only turn stenciling on if needed.
37876
37877         Reviewed by Rob Buis.
37878
37879         Reviewed internally by Arvid Nilsson.
37880
37881         * platform/graphics/blackberry/LayerRenderer.cpp:
37882         (WebCore::LayerRenderer::setViewport):
37883         (WebCore::LayerRenderer::compositeLayers):
37884         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37885         (WebCore::LayerRenderer::compositeLayersRecursive):
37886         (WebCore::LayerRenderer::updateScissorIfNeeded):
37887
37888 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37889
37890         Not reviewed: kick out non-chromium files from WebCore.gypi.
37891
37892         * WebCore.gypi:
37893
37894 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37895
37896         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37897         https://bugs.webkit.org/show_bug.cgi?id=100110
37898
37899         Reviewed by Kenneth Rohde Christiansen.
37900
37901         Removed initialization of ecore_x, since it is initialized when process starts.
37902
37903         test: fast/media/*
37904
37905         * platform/efl/PlatformScreenEfl.cpp:
37906         (WebCore::screenDepth):
37907         (WebCore::screenRect):
37908         * platform/efl/SoundEfl.cpp:
37909         (WebCore::systemBeep):
37910
37911 2012-10-23  Adam Klein  <adamk@chromium.org>
37912
37913         Always parse pasted fragments as HTML even on XHTML pages
37914         https://bugs.webkit.org/show_bug.cgi?id=99880
37915
37916         Reviewed by Ojan Vafai.
37917
37918         When pasting HTML into a page, using the XML parser is unlikely
37919         to work correctly, as the contents of the clipboard are unlikely
37920         to be properly-formed XHTML. Thus, for the pasting case, it's always
37921         better to use HTML parsing, which will properly parse either HTML
37922         (which is what's usually in the clipboard) or XHTML (which is
37923         sometimes there as well).
37924
37925         The Mac port previously worked around this problem by falling back to plain text
37926         when parsing failed, but switching to HTML seems like a clear improvement.
37927
37928         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37929         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37930         would never return null. This patch makes that true.
37931
37932         * editing/markup.cpp:
37933         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37934         we already know our context element is safe (i.e., it's <body>),
37935         and we want to force HTML (not XML) parsing.
37936
37937 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37938
37939         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37940         https://bugs.webkit.org/show_bug.cgi?id=98876
37941
37942         Reviewed by Simon Hausmann.
37943
37944         Do not add word-spacing for leading space. This matches what simple path font-width does.
37945
37946         Tested by existing tests.
37947
37948         * platform/graphics/qt/FontQt.cpp:
37949         (WebCore::Font::floatWidthForComplexText):
37950
37951 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37952
37953         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37954         https://bugs.webkit.org/show_bug.cgi?id=100084
37955
37956         Reviewed by Vsevolod Vlasov.
37957
37958         Use the RFC 3986 grammar for the URL scheme.
37959
37960         * inspector/front-end/ParsedURL.js:
37961         (WebInspector.ParsedURL):
37962
37963 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
37964
37965         Web Inspector: Elaborate source panel sidebar context menus.
37966         https://bugs.webkit.org/show_bug.cgi?id=99980
37967
37968         Reviewed by Vsevolod Vlasov.
37969
37970         - Watches: add "Add watch expression" item to items and empty element
37971         - Watches: hide "Remove watch expression" from editing prompt context menu
37972         - Watches: add titles to header buttons
37973         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
37974         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
37975         - XHR Breakpoints: add title to header button
37976         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
37977         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
37978
37979         * English.lproj/localizedStrings.js: Added corresponding strings.
37980         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
37981         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
37982         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
37983         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
37984
37985 2012-10-23  Kent Tamura  <tkent@chromium.org>
37986
37987         Update binding test results for r132194
37988         https://bugs.webkit.org/show_bug.cgi?id=100097
37989
37990         * bindings/scripts/test/V8/V8TestObj.cpp:
37991         (WebCore::V8TestObj::installPerContextProperties):
37992
37993 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37994
37995         Web Inspector: Sass can only resolve same folder paths
37996         https://bugs.webkit.org/show_bug.cgi?id=99259
37997
37998         Reviewed by Vsevolod Vlasov.
37999
38000         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
38001         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
38002         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
38003
38004         * inspector/front-end/CSSStyleModel.js:
38005         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
38006         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
38007         (WebInspector.CSSStyleModel.prototype._updateLocations):
38008         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
38009         (WebInspector.CSSStyleModel.prototype.updateLocations):
38010         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
38011         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
38012         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
38013         * inspector/front-end/Linkifier.js:
38014         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
38015         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
38016         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
38017         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
38018         * inspector/front-end/ResourceUtils.js:
38019         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
38020         * inspector/front-end/SASSSourceMapping.js:
38021         * inspector/front-end/StylesSidebarPane.js:
38022         (WebInspector.StylesSidebarPane):
38023         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
38024         * inspector/front-end/inspector.html:
38025
38026 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38027
38028         Unreviewed, rolling out r132149.
38029         http://trac.webkit.org/changeset/132149
38030         https://bugs.webkit.org/show_bug.cgi?id=100098
38031
38032         Breaks inspector profiler tests in debug mode. (Requested by
38033         pfeldman1 on #webkit).
38034
38035         * rendering/AutoTableLayout.cpp:
38036         (WebCore::AutoTableLayout::recalcColumn):
38037         * rendering/FixedTableLayout.cpp:
38038         (WebCore::FixedTableLayout::calcWidthArray):
38039         * rendering/RenderTable.cpp:
38040         (WebCore::RenderTable::layout):
38041         * rendering/RenderTableCol.cpp:
38042         (WebCore::RenderTableCol::styleDidChange):
38043         (WebCore::RenderTableCol::updateFromElement):
38044         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38045         * rendering/RenderTableCol.h:
38046         (RenderTableCol):
38047
38048 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
38049
38050         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
38051
38052         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
38053         GraphicsContext3D.h to be done only if we use the surface.
38054
38055         * platform/graphics/surfaces/GraphicsSurface.h:
38056
38057 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38058
38059         Unreviewed, rolling out r132033.
38060         http://trac.webkit.org/changeset/132033
38061         https://bugs.webkit.org/show_bug.cgi?id=100097
38062
38063         Broke calendar picker (Requested by tkent on #webkit).
38064
38065         * bindings/scripts/CodeGeneratorV8.pm:
38066         (GenerateImplementation):
38067
38068 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
38069
38070         Remove devicePixelRatio from ViewportAttributes
38071         https://bugs.webkit.org/show_bug.cgi?id=99845
38072
38073         Reviewed by Adam Barth.
38074
38075         Since r121555 the devicePixelRatio is not calculated any more
38076         and the scale factor is stored in Page::m_deviceScaleFactor,
38077         thus it can be removed from ViewportAttributes to reduce
38078         redundancy and unnecessary client code.
38079         Use a new parameter in viewport calculation functions using
38080         the visible viewport size (instead of passing the adjusted
38081         viewport size) so that after this change clients do not end
38082         up using the unadjusted viewport size for calculations.
38083
38084         No behavioural change, no new tests needed.
38085
38086         * WebCore.exp.in:
38087         * dom/ViewportArguments.cpp:
38088         (WebCore::computeViewportAttributes):
38089         (WebCore::computeMinimumScaleFactorForContentContained):
38090         Add the devicePixelRatio as a parameter.
38091         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
38092         * dom/ViewportArguments.h:
38093         (ViewportAttributes):
38094         (WebCore):
38095         * testing/InternalSettings.cpp:
38096         (WebCore::InternalSettings::configurationForViewport):
38097
38098 2012-10-23  Kent Tamura  <tkent@chromium.org>
38099
38100         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38101         https://bugs.webkit.org/show_bug.cgi?id=100060
38102
38103         Reviewed by Kentaro Hara.
38104
38105         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38106         no one wants to show abbreviated month names for input[type=month].
38107         This change add support for full month names in DateTimeEditELement, and
38108         LocaleICU and LocaleMac retun month formats with full month names. Note
38109         that LocaleWin::monthFormat returns formats for full month names.
38110
38111         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38112
38113         * html/shadow/DateTimeEditElement.cpp:
38114         (WebCore::DateTimeEditBuilder::visitField):
38115         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38116         * platform/text/LocaleICU.cpp:
38117         (WebCore::LocaleICU::monthFormat):
38118         Returns a format for full month names.
38119         * platform/text/mac/LocaleMac.mm:
38120         (WebCore::LocaleMac::monthFormat): Ditto.
38121
38122 2012-10-23  Mike West  <mkwst@chromium.org>
38123
38124         Viewport errors should be slightly friendlier with regard to ';'.
38125         https://bugs.webkit.org/show_bug.cgi?id=100003
38126
38127         Reviewed by Adam Barth.
38128
38129         This patch scans viewport values that cause errors for ';'. If found,
38130         a quick message is appended to the error, noting that semicolons are
38131         not valid separators in viewport contents, and that commas would be
38132         the proper substitute.
38133
38134         No functional changes, just a better error message.
38135
38136         * dom/ViewportArguments.cpp:
38137         (WebCore::reportViewportWarning):
38138
38139 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38140
38141         Docking/undocking the Web Inspector does not work correctly in Safari.
38142
38143         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38144
38145         https://bugs.webkit.org/show_bug.cgi?id=100080
38146
38147         Reviewed by Yury Semikhatsky.
38148
38149         * inspector/InspectorFrontendClientLocal.cpp:
38150         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38151
38152 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38153
38154         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38155         https://bugs.webkit.org/show_bug.cgi?id=99723
38156
38157         Reviewed by Kenneth Rohde Christiansen.
38158
38159         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38160         enabled.
38161
38162         No new tests, no change in behavior.
38163
38164         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38165         (WebCore::GraphicsContext3DPrivate::createSurface):
38166
38167 2012-10-23  Dan Carney  <dcarney@google.com>
38168
38169         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38170         https://bugs.webkit.org/show_bug.cgi?id=63257
38171
38172         Reviewed by Jochen Eisinger.
38173
38174         Throw security exception when local storage is accessed
38175         under certain circumstances to match firefox.
38176
38177         No new tests. Existing tests modified.
38178
38179         * bindings/js/JSStorageCustom.cpp:
38180         (WebCore::JSStorage::canGetItemsForName):
38181         (WebCore::JSStorage::nameGetter):
38182         (WebCore::JSStorage::deleteProperty):
38183         (WebCore::JSStorage::getOwnPropertyNames):
38184         * bindings/v8/custom/V8StorageCustom.cpp:
38185         (WebCore):
38186         (WebCore::setDOMException):
38187         (WebCore::V8Storage::namedPropertyEnumerator):
38188         (WebCore::storageGetter):
38189         (WebCore::V8Storage::namedPropertyQuery):
38190         (WebCore::storageDeleter):
38191         * inspector/InspectorDOMStorageAgent.cpp:
38192         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38193         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38194         * page/DOMWindow.cpp:
38195         (WebCore::DOMWindow::sessionStorage):
38196         (WebCore::DOMWindow::localStorage):
38197         * storage/Storage.cpp:
38198         * storage/Storage.h:
38199         (WebCore):
38200         (WebCore::Storage::length):
38201         (WebCore::Storage::key):
38202         (WebCore::Storage::getItem):
38203         (WebCore::Storage::setItem):
38204         (WebCore::Storage::removeItem):
38205         (WebCore::Storage::clear):
38206         (WebCore::Storage::contains):
38207         * storage/Storage.idl:
38208         * storage/StorageArea.h:
38209         (StorageArea):
38210         * storage/StorageAreaImpl.cpp:
38211         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38212         (WebCore):
38213         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38214         (WebCore::StorageAreaImpl::length):
38215         (WebCore::StorageAreaImpl::key):
38216         (WebCore::StorageAreaImpl::getItem):
38217         (WebCore::StorageAreaImpl::setItem):
38218         (WebCore::StorageAreaImpl::removeItem):
38219         (WebCore::StorageAreaImpl::clear):
38220         (WebCore::StorageAreaImpl::contains):
38221         * storage/StorageAreaImpl.h:
38222         (StorageAreaImpl):
38223
38224 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38225
38226         IndexedDB: Remove custom binding code for IDBCursor.value
38227         https://bugs.webkit.org/show_bug.cgi?id=100034
38228
38229         Reviewed by Kentaro Hara.
38230
38231         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38232         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38233         semantics that the object identity is retained across accesses.
38234
38235         Test: storage/indexeddb/cursor-value.html
38236
38237         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38238         (WebCore::IDBCursor::IDBCursor):
38239         (WebCore::IDBCursor::value):
38240         (WebCore::IDBCursor::setValueReady):
38241         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38242         (IDBCursor):
38243         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38244         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38245         (WebCore):
38246         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38247         * WebCore.gypi: Ditto.
38248         * WebCore.vcproj/WebCore.vcproj: Ditto.
38249         * bindings/v8/IDBCustomBindings.cpp: Removed.
38250
38251 2012-10-22  Dan Bernstein  <mitz@apple.com>
38252
38253         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38254         https://bugs.webkit.org/show_bug.cgi?id=100068
38255
38256         Reviewed by Sam Weinig.
38257
38258         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38259         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38260         for now just use the complex code path in this case.
38261
38262         * platform/graphics/Font.cpp:
38263         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38264         typesetting features.
38265         (WebCore::Font::drawEmphasisMarks): Ditto.
38266         (WebCore::Font::selectionRectForText): Ditto.
38267         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38268         typesetting features.
38269
38270 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38271
38272         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38273         https://bugs.webkit.org/show_bug.cgi?id=99950
38274
38275         Reviewed by George Staikos.
38276
38277         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38278         we should combine the following ones with the first.
38279
38280         No new test case.
38281
38282         * platform/network/blackberry/NetworkJob.cpp:
38283         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38284
38285 2012-10-22  MORITA Hajime  <morrita@google.com>
38286
38287         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38288         https://bugs.webkit.org/show_bug.cgi?id=100038
38289
38290         Reviewed by Kent Tamura.
38291
38292         isHTMLContentElement() assumes that the content element always has
38293         a tag name "content" but it doesn't when Shadow DOM feature is
38294         disabled. This fix let the function see the correct tag name.
38295
38296         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38297
38298         * html/shadow/HTMLContentElement.cpp:
38299         (WebCore::HTMLContentElement::contentTagName):
38300         * html/shadow/HTMLContentElement.h:
38301         (HTMLContentElement):
38302         (WebCore::isHTMLContentElement):
38303
38304 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38305
38306         [Shadow] Fallback content should also be reprojection.
38307         https://bugs.webkit.org/show_bug.cgi?id=99750
38308
38309         Reviewed by Dimitri Glazkov.
38310
38311         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38312         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38313         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38314         check the grand parent of the element instead of the element.
38315
38316         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38317                fast/dom/shadow/content-reprojection-fallback.html
38318
38319         * css/StyleResolver.cpp:
38320         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38321         an InsertionPoint which uses fallback content.
38322         * dom/ComposedShadowTreeWalker.cpp:
38323         (WebCore::shadowOfParentForDistribution):
38324         (WebCore):
38325         (WebCore::resolveReprojection):
38326         (WebCore::ComposedShadowTreeWalker::traverseParent):
38327         * html/shadow/InsertionPoint.cpp:
38328         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38329         (WebCore):
38330         * html/shadow/InsertionPoint.h:
38331         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38332         fallback content. Returns parent element otherwise.
38333         (WebCore):
38334
38335 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38336
38337         Label position is wrong in the suggestion picker when all the suggestions have labels
38338         https://bugs.webkit.org/show_bug.cgi?id=99965
38339
38340         Reviewed by Kent Tamura.
38341
38342         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38343
38344         No new tests. Can't reproduce in layout test.
38345
38346         * Resources/pagepopups/suggestionPicker.css:
38347         (.suggestion-list):
38348         * Resources/pagepopups/suggestionPicker.js:
38349         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38350
38351 2012-10-22  MORITA Hajime  <morrita@google.com>
38352
38353         [Chromium] Needs to track ShadowRoot usage
38354         https://bugs.webkit.org/show_bug.cgi?id=99955
38355
38356         Reviewed by Dimitri Glazkov.
38357
38358         Added an UMA instrumentation.
38359
38360         * dom/ShadowRoot.cpp:
38361         (WebCore::determineUsageType):
38362         (WebCore):
38363         (WebCore::ShadowRoot::create):
38364
38365 2012-10-22  Kent Tamura  <tkent@chromium.org>
38366
38367         Introduce Localizer::standAloneMonthLabels
38368         https://bugs.webkit.org/show_bug.cgi?id=99963
38369
38370         Reviewed by Kentaro Hara.
38371
38372         We realized full month names and full stand-alone month names were
38373         necessary for input[type=month] UI. We change the compile-flag for
38374         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38375         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38376         introduce Localizer::standAloneMonthLabels.
38377
38378         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38379         and LocalizedDateICUTest.cpp.
38380
38381         * platform/text/Localizer.h:
38382         (Localizer):
38383         - Add pure virtual standAloneMonthLabels.
38384         - Change the condition for monthLabels.
38385
38386         * platform/text/LocaleNone.cpp:
38387         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38388         (WebCore::LocaleNone::monthLabels):
38389         Added. It always returns English month names.
38390         (WebCore::LocaleNone::standAloneMonthLabels):
38391         Added. Just calls monthLabels.
38392
38393         * platform/text/LocaleWin.h:
38394         (LocaleWin):
38395         Declare standAloneMonthLabels, and change the condition for monthLabels.
38396         * platform/text/LocaleWin.cpp:
38397         (WebCore): Change the condition for monthLabels.
38398         (WebCore::LocaleWin::standAloneMonthLabels):
38399         Added. Just calls monthLabels.
38400
38401         * platform/text/mac/LocaleMac.h:
38402         (LocaleMac):
38403         - Add standAloneMonthLabels and m_standAloneMonthLabels
38404         - Change the condition for monthLabels and m_monthLabels.
38405         * platform/text/mac/LocaleMac.mm:
38406         (WebCore): Change the condition for monthLabels.
38407         (WebCore::LocaleMac::standAloneMonthLabels):
38408         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38409
38410         * platform/text/LocaleICU.h:
38411         (LocaleICU):
38412         - Add standAloneMonthLabels and m_standAloneMonthLabels
38413         - Change the condition for monthLabels and m_monthLabels.
38414         * platform/text/LocaleICU.cpp:
38415         (WebCore::LocaleICU::initializeCalendar):
38416         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38417         (WebCore):
38418         (WebCore::createFallbackMonthLabels): Change the compile condition.
38419         (WebCore::LocaleICU::monthLabels):
38420         - Change the compile condition.
38421         - Don't depend on initializeCalendar to make the code for
38422         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38423         (WebCore::LocaleICU::standAloneMonthLabels):
38424         Added. The code is similar to shortStandAloneMonthLabels.
38425
38426 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38427
38428         Refactoring around ContainerNode::attachChildren
38429         https://bugs.webkit.org/show_bug.cgi?id=99968
38430
38431         Reviewed by Hajime Morita.
38432
38433         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38434         ContainerNode::attach() instead of calling them.
38435
38436         No new tests, no change in behavior.
38437
38438         * dom/ContainerNode.h:
38439         (ContainerNode):
38440         * dom/Element.cpp:
38441         (WebCore::Element::attach):
38442         * dom/ShadowRoot.cpp:
38443         (WebCore::ShadowRoot::attach):
38444
38445 2012-10-22  Michael Saboff  <msaboff@apple.com>
38446
38447         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38448         https://bugs.webkit.org/show_bug.cgi?id=99889
38449
38450         Reviewed by Geoffrey Garen.
38451
38452         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38453         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38454         m_bufferedEndTagName as LChar's.
38455
38456         No new tests, covered by existing tests.
38457
38458         * html/parser/HTMLToken.h:
38459         (HTMLToken):
38460         * html/parser/HTMLTokenizer.cpp:
38461         (WebCore::HTMLTokenizer::nextToken):
38462         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38463         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38464         * html/parser/HTMLTokenizer.h:
38465         (HTMLTokenizer):
38466         * html/parser/HTMLTreeBuilder.cpp:
38467         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38468         * xml/parser/MarkupTokenBase.h:
38469         (WebCore::MarkupTokenBase::beginStartTag):
38470         (WebCore::MarkupTokenBase::beginEndTag):
38471         (MarkupTokenBase):
38472         (WebCore::MarkupTokenBase::beginDOCTYPE):
38473         (WebCore::MarkupTokenBase::appendToComment):
38474         (WebCore::MarkupTokenBase::appendToName):
38475         (WebCore::MarkupTokenBase::nameString):
38476         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38477
38478 2012-10-22  Tony Chang  <tony@chromium.org>
38479
38480         margin-top/bottom has no effect for child nodes of flex items
38481         https://bugs.webkit.org/show_bug.cgi?id=99923
38482
38483         Reviewed by Ojan Vafai.
38484
38485         Flexitems, like table cells, shouldn't collapse margins.
38486
38487         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38488
38489         * rendering/RenderBlock.cpp:
38490         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38491         We should always have a parent if we make it this far in the check.
38492
38493 2012-10-22  Marja Hölttä  <marja@chromium.org>
38494
38495         Refactor CachedResourceLoader: add CachedResourceRequest
38496         https://bugs.webkit.org/show_bug.cgi?id=99736
38497
38498         Reviewed by Adam Barth.
38499
38500         For fixing bugs 84883 and 92761,
38501         CachedResourceLoader::requestResource should take as parameter
38502         information about who initiated the request. But the parameter
38503         list was already long. This gathers all the parameters into a
38504         separate class, CachedResourceRequest. The next step is to add
38505         information about who initiated the request into
38506         CachedResourceRequest.
38507
38508         No new tests because no changes in functionality, just moving code
38509         around.
38510
38511         * CMakeLists.txt:
38512         * GNUmakefile.list.am:
38513         * Target.pri:
38514         * WebCore.gypi:
38515         * WebCore.vcproj/WebCore.vcproj:
38516         * WebCore.xcodeproj/project.pbxproj:
38517         * css/CSSFontFaceSrcValue.cpp:
38518         (WebCore::CSSFontFaceSrcValue::cachedFont):
38519         * css/CSSImageSetValue.cpp:
38520         (WebCore::CSSImageSetValue::cachedImageSet):
38521         * css/CSSImageValue.cpp:
38522         (WebCore::CSSImageValue::cachedImage):
38523         * css/StyleRuleImport.cpp:
38524         (WebCore::StyleRuleImport::requestStyleSheet):
38525         * css/WebKitCSSSVGDocumentValue.cpp:
38526         (WebCore::WebKitCSSSVGDocumentValue::load):
38527         * css/WebKitCSSShaderValue.cpp:
38528         (WebCore::WebKitCSSShaderValue::cachedShader):
38529         * dom/ProcessingInstruction.cpp:
38530         (WebCore::ProcessingInstruction::checkStyleSheet):
38531         * dom/ScriptElement.cpp:
38532         (WebCore::ScriptElement::requestScript):
38533         * html/HTMLLinkElement.cpp:
38534         (WebCore::HTMLLinkElement::process):
38535         * loader/DocumentThreadableLoader.cpp:
38536         (WebCore::DocumentThreadableLoader::loadRequest):
38537         * loader/ImageLoader.cpp:
38538         (WebCore::ImageLoader::updateFromElement):
38539         * loader/LinkLoader.cpp:
38540         (WebCore::LinkLoader::loadLink):
38541         * loader/TextTrackLoader.cpp:
38542         (WebCore::TextTrackLoader::load):
38543         * loader/cache/CachedResourceLoader.cpp:
38544         (WebCore::CachedResourceLoader::requestImage):
38545         (WebCore::CachedResourceLoader::requestFont):
38546         (WebCore::CachedResourceLoader::requestTextTrack):
38547         (WebCore::CachedResourceLoader::requestShader):
38548         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38549         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38550         (WebCore::CachedResourceLoader::requestScript):
38551         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38552         (WebCore::CachedResourceLoader::requestSVGDocument):
38553         (WebCore::CachedResourceLoader::requestLinkResource):
38554         (WebCore::CachedResourceLoader::requestRawResource):
38555         (WebCore::CachedResourceLoader::requestResource):
38556         (WebCore::CachedResourceLoader::requestPreload):
38557         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38558         (WebCore):
38559         * loader/cache/CachedResourceLoader.h:
38560         (WebCore):
38561         (CachedResourceLoader):
38562         * loader/cache/CachedResourceRequest.cpp: Added.
38563         (WebCore):
38564         (WebCore::CachedResourceRequest::CachedResourceRequest):
38565         * loader/cache/CachedResourceRequest.h: Added.
38566         (WebCore):
38567         (CachedResourceRequest):
38568         (WebCore::CachedResourceRequest::mutableResourceRequest):
38569         (WebCore::CachedResourceRequest::resourceRequest):
38570         (WebCore::CachedResourceRequest::charset):
38571         (WebCore::CachedResourceRequest::setCharset):
38572         (WebCore::CachedResourceRequest::options):
38573         (WebCore::CachedResourceRequest::priority):
38574         (WebCore::CachedResourceRequest::forPreload):
38575         (WebCore::CachedResourceRequest::setForPreload):
38576         (WebCore::CachedResourceRequest::defer):
38577         (WebCore::CachedResourceRequest::setDefer):
38578         * loader/icon/IconLoader.cpp:
38579         (WebCore::IconLoader::startLoading):
38580         * svg/SVGFEImageElement.cpp:
38581         (WebCore::SVGFEImageElement::requestImageResource):
38582         * svg/SVGFontFaceUriElement.cpp:
38583         (WebCore::SVGFontFaceUriElement::loadFont):
38584         * svg/SVGUseElement.cpp:
38585         (WebCore::SVGUseElement::svgAttributeChanged):
38586         * xml/XSLImportRule.cpp:
38587         (WebCore::XSLImportRule::loadSheet):
38588
38589 2012-10-22  Adam Barth  <abarth@webkit.org>
38590
38591         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38592         https://bugs.webkit.org/show_bug.cgi?id=100046
38593
38594         Reviewed by Eric Seidel.
38595
38596         This function is called only on worker threads. We should ASSERT that
38597         fact and remove the dead code that tries to handle the main thread
38598         case.
38599
38600         * bindings/v8/V8DOMMap.cpp:
38601         (WebCore::removeAllDOMObjects):
38602
38603 2012-10-22  Adam Barth  <abarth@webkit.org>
38604
38605         [V8] We should call the faster v8::Integer::New APIs
38606         https://bugs.webkit.org/show_bug.cgi?id=100016
38607
38608         Reviewed by Eric Seidel.
38609
38610         In working to remove the integer cache, I added some faster APIs for
38611         creating v8::Integers. These APIs are faster than the old APIs, but not
38612         quite fast enough to replace the integer cache. We should still use
38613         them when we miss the integer cache.
38614
38615         I've also included a small refactoring to V8PerIsolateData to make it
38616         clearer when we're calling v8::Isolate::GetCurrent().
38617
38618         * bindings/v8/DOMData.cpp:
38619         (WebCore::DOMData::getCurrentStore):
38620         * bindings/v8/V8Binding.h:
38621         (WebCore::v8ExternalString):
38622         (WebCore::v8Integer):
38623         (WebCore::v8UnsignedInteger):
38624         * bindings/v8/V8PerIsolateData.h:
38625         (WebCore::V8PerIsolateData::current):
38626         (WebCore::V8PerIsolateData::from):
38627         * bindings/v8/V8ValueCache.cpp:
38628         (WebCore::StringCache::v8ExternalStringSlow):
38629         (WebCore::IntegerCache::createSmallIntegers):
38630         * bindings/v8/V8ValueCache.h:
38631         (WebCore::IntegerCache::v8Integer):
38632         (WebCore::IntegerCache::v8UnsignedInteger):
38633         (IntegerCache):
38634         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38635         (WebCore::V8HTMLCanvasElement::getContextCallback):
38636
38637 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38638
38639         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38640         https://bugs.webkit.org/show_bug.cgi?id=99861
38641
38642         Reviewed by Ojan Vafai.
38643
38644         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38645         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38646         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38647         or else we would ignore the next layout hint on the <col> or <colgroup>.
38648
38649         Test: fast/table/col-span-change-relayout.html
38650
38651         * rendering/AutoTableLayout.cpp:
38652         (WebCore::AutoTableLayout::recalcColumn):
38653         * rendering/RenderTable.cpp:
38654         (WebCore::RenderTable::layout):
38655         Simplified the code now that we only need to iterate over the sections.
38656
38657         * rendering/FixedTableLayout.cpp:
38658         (WebCore::FixedTableLayout::calcWidthArray):
38659         Removed call to computePreferredLogicalWidths.
38660
38661         * rendering/RenderTableCol.cpp:
38662         (WebCore::RenderTableCol::styleDidChange):
38663         (WebCore::RenderTableCol::updateFromElement):
38664         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38665
38666         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38667         (WebCore::RenderTableCol::layout):
38668         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38669         never called.
38670
38671         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38672         New helper function that forward any layout cue to the containing table, this works around
38673         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38674         invalidateContainerPreferredLogicalWidths.
38675
38676         * rendering/RenderTableCol.h:
38677         Made the function that we are not expected to be called private.
38678
38679 2012-10-22  Pan Deng  <pan.deng@intel.com>
38680
38681         [User Timing]Integrate with Perforamnce Timeline.
38682         https://bugs.webkit.org/show_bug.cgi?id=91072.
38683
38684         Reviewed by Tony Gentilcore.
38685
38686         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38687
38688         No new tests, user timing test cases have been landed.
38689
38690         * page/Performance.cpp:
38691         (WebCore::Performance::Performance):
38692         (WebCore::Performance::webkitGetEntries):
38693         (WebCore::Performance::webkitGetEntriesByType):
38694         (WebCore::Performance::webkitGetEntriesByName):
38695         * page/PerformanceEntry.h:
38696         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38697         (PerformanceEntry):
38698         * page/PerformanceEntryList.cpp:
38699         (WebCore::PerformanceEntryList::sort):
38700         (WebCore):
38701         * page/PerformanceEntryList.h:
38702         (PerformanceEntryList):
38703         * page/PerformanceUserTiming.cpp:
38704         (WebCore::convertToEntrySequence):
38705         (WebCore):
38706         (WebCore::getEntrySequenceByName):
38707         (WebCore::UserTiming::getMarks):
38708         (WebCore::UserTiming::getMeasures):
38709         * page/PerformanceUserTiming.h:
38710         (UserTiming):
38711
38712 2012-10-22  Pan Deng  <pan.deng@intel.com>
38713
38714         Modify obsolete code in User Timing
38715         https://bugs.webkit.org/show_bug.cgi?id=99851
38716
38717         Reviewed by Tony Gentilcore.
38718
38719         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38720
38721         No new tests.
38722
38723         * page/PerformanceUserTiming.cpp:
38724         (WebCore::insertPerformanceEntry):
38725         (WebCore::UserTiming::mark):
38726         (WebCore::UserTiming::measure):
38727         * page/PerformanceUserTiming.h:
38728
38729 2012-10-22  Mark Lam  <mark.lam@apple.com>
38730
38731         Change stack recursion checks to be based on stack availability.
38732         https://bugs.webkit.org/show_bug.cgi?id=99872.
38733
38734         Reviewed by Filip Pizlo and Geoffrey Garen.
38735
38736         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38737         for error processing before doing work in reportException().
38738
38739         * bindings/js/JSDOMBinding.cpp:
38740         (WebCore::reportException):
38741         * bindings/js/JSDOMWindowBase.cpp:
38742         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38743         * bindings/js/WorkerScriptController.cpp:
38744         (WebCore::WorkerScriptController::WorkerScriptController):
38745
38746 2012-10-22  Andreas Kling  <kling@webkit.org>
38747
38748         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38749         <http://webkit.org/b/99937>
38750
38751         Reviewed by Anders Carlsson.
38752
38753         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38754         input type changing mechanism to write a value attribute onto the element. This happens in
38755         HTMLInputElement::updateType(), below parseAttribute().
38756
38757         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38758         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38759         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38760
38761         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38762         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38763         fewer references into the attribute store we have, the better.)
38764
38765         Test: fast/html/input-type-change-crash.html
38766
38767         * dom/Attr.cpp:
38768         (WebCore::Attr::setValue):
38769         (WebCore::Attr::childrenChanged):
38770         * dom/Element.cpp:
38771         (WebCore::Element::setAttributeInternal):
38772         (WebCore::Element::attributeChanged):
38773         (WebCore::Element::parserSetAttributes):
38774         (WebCore::Element::addAttributeInternal):
38775         (WebCore::Element::didAddAttribute):
38776         (WebCore::Element::didModifyAttribute):
38777         (WebCore::Element::didRemoveAttribute):
38778         * dom/Element.h:
38779         (Element):
38780         * dom/ElementAttributeData.cpp:
38781         (WebCore::ElementAttributeData::cloneDataFrom):
38782         * dom/StyledElement.cpp:
38783         (WebCore::StyledElement::attributeChanged):
38784         * dom/StyledElement.h:
38785         * html/HTMLInputElement.cpp:
38786         (WebCore::HTMLInputElement::updateType):
38787         * svg/SVGElement.cpp:
38788         (WebCore::SVGElement::attributeChanged):
38789         * svg/SVGElement.h:
38790         (SVGElement):
38791
38792 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38793
38794         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38795         https://bugs.webkit.org/show_bug.cgi?id=100014
38796
38797         Reviewed by Tony Chang.
38798
38799         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38800         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38801         useless comparison was caught by a clang check.
38802
38803         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38804
38805         Test: storage/indexeddb/cursor-advance.html
38806
38807         * Modules/indexeddb/IDBCursor.cpp:
38808         (WebCore::IDBCursor::advance):
38809         * Modules/indexeddb/IDBCursor.h:
38810         (IDBCursor):
38811         * Modules/indexeddb/IDBCursor.idl:
38812
38813 2012-10-22  Tony Chang  <tony@chromium.org>
38814
38815         WebKit does not support 'flex-wrap: nowrap'
38816         https://bugs.webkit.org/show_bug.cgi?id=99924
38817
38818         Reviewed by Ojan Vafai.
38819
38820         The spec changed back from using none to nowrap for the single-line
38821         flexbox case.
38822         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38823
38824         No new tests, covered by css3/flexbox/css-properties.html and others.
38825
38826         * css/CSSParser.cpp:
38827         (WebCore::isValidKeywordPropertyAndValue):
38828         * css/CSSPrimitiveValueMappings.h:
38829         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38830         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38831         * css/CSSValueKeywords.in:
38832         * rendering/RenderBox.cpp:
38833         (WebCore::isStretchingColumnFlexItem):
38834         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38835         * rendering/RenderFlexibleBox.cpp:
38836         (WebCore::RenderFlexibleBox::isMultiline):
38837         * rendering/style/RenderStyle.h:
38838         * rendering/style/RenderStyleConstants.h:
38839
38840 2012-10-22  Mike West  <mkwst@chromium.org>
38841
38842         'image/pjpeg' should be treated as an image by Web Inspector.
38843         https://bugs.webkit.org/show_bug.cgi?id=100001
38844
38845         Reviewed by Pavel Feldman.
38846
38847         It's not exactly a "real" MIME type, but it's in use.
38848
38849         * inspector/front-end/NetworkManager.js:
38850         (WebInspector.NetworkManager):
38851             Adding 'image/pjpeg' as an image MIME type.
38852
38853 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38854
38855         Unreviewed, rolling out r132119.
38856         http://trac.webkit.org/changeset/132119
38857         https://bugs.webkit.org/show_bug.cgi?id=100019
38858
38859         Fails its own test on Mac platforms. (Requested by leviw on
38860         #webkit).
38861
38862         * page/EventHandler.cpp:
38863         (WebCore::EventHandler::handleGestureEvent):
38864         (WebCore::EventHandler::sendContextMenuEventForGesture):
38865         * page/EventHandler.h:
38866         (EventHandler):
38867
38868 2012-10-22  Hans Muller  <hmuller@adobe.com>
38869
38870         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38871         https://bugs.webkit.org/show_bug.cgi?id=98967
38872
38873         Reviewed by Dirk Schulze.
38874
38875         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38876         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38877         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38878         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38879
38880         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38881
38882         * rendering/ExclusionPolygon.cpp:
38883         (WebCore::ExclusionPolygon::getExcludedIntervals):
38884         (WebCore::ExclusionPolygon::getIncludedIntervals):
38885         * rendering/ExclusionPolygon.h:
38886         * rendering/ExclusionRectangle.cpp:
38887         (WebCore::ExclusionRectangle::getExcludedIntervals):
38888         (WebCore::ExclusionRectangle::getIncludedIntervals):
38889         * rendering/ExclusionRectangle.h:
38890         * rendering/ExclusionShape.h:
38891         (LineSegment): Moved the struct fields below the constructor per webkit style.
38892         (ExclusionShape):
38893         (WebCore::ExclusionShape::minYForLogicalLine):
38894         (WebCore::ExclusionShape::maxYForLogicalLine):
38895         * rendering/ExclusionShapeInsideInfo.cpp:
38896         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38897         * rendering/ExclusionShapeInsideInfo.h:
38898         (ExclusionShapeInsideInfo):
38899         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38900             lines whose logicalTop is equal to the shape's top+height.
38901         * rendering/RenderBlockLineLayout.cpp:
38902         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38903
38904 2012-10-22  Chris Rogers  <crogers@google.com>
38905
38906         Update some AudioContext create() method names to latest Web Audio spec
38907         https://bugs.webkit.org/show_bug.cgi?id=99888
38908
38909         Reviewed by Adam Barth.
38910
38911         The following AudioContext method names are being changed, with legacy support for the old names:
38912         createGainNode -> createGain
38913         createDelayNode -> createDelay
38914         createJavaScriptNode -> createScriptProcessor
38915
38916         For details:
38917         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38918
38919         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38920         to test coverage of the new names.
38921
38922         * Modules/webaudio/AudioBufferSourceNode.idl:
38923         * Modules/webaudio/AudioContext.cpp:
38924         (WebCore::AudioContext::createScriptProcessor):
38925         (WebCore::AudioContext::createGain):
38926         (WebCore::AudioContext::createDelay):
38927         * Modules/webaudio/AudioContext.h:
38928         (AudioContext):
38929         * Modules/webaudio/AudioContext.idl:
38930         * page/FeatureObserver.h:
38931
38932 2012-10-22  Varun Jain  <varunjain@chromium.org>
38933
38934         Context menu generated from touch gestures on textareas has
38935         context of the cursor position instead of the position where the event occurs.
38936         https://bugs.webkit.org/show_bug.cgi?id=99520
38937
38938         Reviewed by Kenneth Rohde Christiansen.
38939
38940         Send a synthetic mouse down event for context menu-summoning-gesture events so
38941         that textareas can correctly set cursors before receiving the context menu event.
38942
38943         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38944
38945         * page/EventHandler.cpp:
38946         (WebCore::EventHandler::handleGestureEvent):
38947         (WebCore::EventHandler::handleGestureTwoFingerTap):
38948         (WebCore):
38949         (WebCore::EventHandler::sendContextMenuEventForGesture):
38950         * page/EventHandler.h:
38951         (EventHandler):
38952
38953 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38954
38955         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38956         https://bugs.webkit.org/show_bug.cgi?id=100002
38957
38958         Reviewed by Kenneth Rohde Christiansen.
38959
38960         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
38961         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
38962             Check if a surface has been created before accessing the pointer.
38963         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
38964             Check if m_graphicsSurface is a valid pointer before dereferencing it.
38965
38966 2012-10-22  Michael Saboff  <msaboff@apple.com>
38967
38968         r131955 is has improper function call in LinkHashChromium.cpp
38969         https://bugs.webkit.org/show_bug.cgi?id=100008
38970
38971         Reviewed by Alexey Proskuryakov.
38972
38973         Followup fix to r131955 for chromium platform.  Added call to 
38974         (const UChar*, unsigned) version of visitedLinkHash from String& version.
38975
38976         * platform/chromium/LinkHashChromium.cpp:
38977         (WebCore::visitedLinkHash):
38978
38979 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
38980
38981         webkitsourceopen event doesn't always fire
38982         https://bugs.webkit.org/show_bug.cgi?id=99868
38983
38984         Reviewed by Adam Barth.
38985
38986         Changed MediaSource to derive from ActiveDOMObject so that event listeners
38987         will still fire even if all references to the object go out of scope.
38988
38989         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
38990
38991         * Modules/mediasource/MediaSource.cpp:
38992         (WebCore::MediaSource::create):
38993         (WebCore::MediaSource::MediaSource):
38994         (WebCore::MediaSource::scriptExecutionContext):
38995         (WebCore):
38996         (WebCore::MediaSource::hasPendingActivity):
38997         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
38998         * Modules/mediasource/MediaSource.h:
38999         (MediaSource):
39000         * Modules/mediasource/MediaSource.idl:
39001         * Modules/mediasource/MediaSourceRegistry.cpp:
39002         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
39003         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
39004
39005 2012-10-22  Adam Barth  <abarth@webkit.org>
39006
39007         [V8] Vastly simplify V8GCController's NodeVisitor
39008         https://bugs.webkit.org/show_bug.cgi?id=99884
39009
39010         Reviewed by Kentaro Hara.
39011
39012         NodeVisitor was vastly more complicated than necessary.
39013
39014         This patch improve performance on these new gc benchmarks:
39015
39016         gc-forest: 1.14% better
39017         gc-mini-tree: 5.09% better
39018         gc-tree: 4.60% better
39019
39020         * bindings/v8/V8GCController.cpp:
39021         (WebCore::ObjectVisitor::visitDOMWrapper):
39022         (WebCore::addImplicitReferencesForNodeWithEventListeners):
39023         (WebCore::rootForGC):
39024         (WebCore::NodeVisitor::visitDOMWrapper):
39025         (WebCore::NodeVisitor::applyGrouping):
39026         (NodeVisitor):
39027
39028 2012-10-22  Emil A Eklund  <eae@chromium.org>
39029
39030         Change baselinePosition and maxAscent/maxDescent to int
39031         https://bugs.webkit.org/show_bug.cgi?id=99767
39032
39033         Reviewed by Levi Weintraub.
39034
39035         Currently baselinePostion, maxAscent and maxDescent are
39036         LayoutUnits while ascent, descent and m_lineHeight are ints.
39037         This can lead to subtle alignment and rounding problems.
39038
39039         Change baselinePosition and maxAscent/maxDescent to int to avoid
39040         these issues.
39041
39042         Test: fast/sub-pixel/replaced-element-baseline.html
39043
39044         * editing/FrameSelection.cpp:
39045         (WebCore::repaintRectForCaret):
39046         Inflate Y dimension just like we do for X to ensure that the
39047         repaint rect fully contains the caret.
39048
39049         * rendering/InlineBox.cpp:
39050         (WebCore::InlineBox::baselinePosition):
39051         * rendering/InlineBox.h:
39052         (InlineBox):
39053         * rendering/InlineFlowBox.cpp:
39054         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
39055         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39056         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
39057         Change maxAscent/maxDescent to int to match ascent/descent.
39058         
39059         * rendering/InlineFlowBox.h:
39060         (InlineFlowBox):
39061         * rendering/InlineTextBox.cpp:
39062         (WebCore::InlineTextBox::baselinePosition):
39063         * rendering/InlineTextBox.h:
39064         (InlineTextBox):
39065         * rendering/RenderBlock.cpp:
39066         (WebCore::RenderBlock::baselinePosition):
39067         (WebCore::RenderBlock::firstLineBoxBaseline):
39068         (WebCore::RenderBlock::lastLineBoxBaseline):
39069         * rendering/RenderBlock.h:
39070         (RenderBlock):
39071         * rendering/RenderBox.cpp:
39072         (WebCore::RenderBox::baselinePosition):
39073         * rendering/RenderBox.h:
39074         (WebCore::RenderBox::firstLineBoxBaseline):
39075         (WebCore::RenderBox::lastLineBoxBaseline):
39076         (RenderBox):
39077         * rendering/RenderBoxModelObject.h:
39078         (RenderBoxModelObject):
39079         * rendering/RenderFlexibleBox.cpp:
39080         (WebCore::RenderFlexibleBox::baselinePosition):
39081         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
39082         * rendering/RenderFlexibleBox.h:
39083         * rendering/RenderInline.cpp:
39084         (WebCore::RenderInline::baselinePosition):
39085         * rendering/RenderInline.h:
39086         (RenderInline):
39087         * rendering/RenderListBox.cpp:
39088         (WebCore::RenderListBox::baselinePosition):
39089         * rendering/RenderListBox.h:
39090         (RenderListBox):
39091         * rendering/RenderListMarker.cpp:
39092         (WebCore::RenderListMarker::baselinePosition):
39093         * rendering/RenderListMarker.h:
39094         (RenderListMarker):
39095         * rendering/RenderSlider.cpp:
39096         (WebCore::RenderSlider::baselinePosition):
39097         * rendering/RenderSlider.h:
39098         (RenderSlider):
39099         * rendering/RenderTable.cpp:
39100         (WebCore::RenderTable::baselinePosition):
39101         (WebCore::RenderTable::lastLineBoxBaseline):
39102         (WebCore::RenderTable::firstLineBoxBaseline):
39103         * rendering/RenderTable.h:
39104         (RenderTable):
39105         * rendering/RenderTableSection.cpp:
39106         (WebCore::RenderTableSection::firstLineBoxBaseline):
39107         * rendering/RenderTableSection.h:
39108         (RenderTableSection):
39109         * rendering/RenderTextControlMultiLine.cpp:
39110         (WebCore::RenderTextControlMultiLine::baselinePosition):
39111         * rendering/RenderTextControlMultiLine.h:
39112         (RenderTextControlMultiLine):
39113         * rendering/RenderTheme.cpp:
39114         (WebCore::RenderTheme::baselinePosition):
39115         * rendering/RenderTheme.h:
39116         (RenderTheme):
39117         * rendering/RenderThemeSafari.cpp:
39118         (WebCore::RenderThemeSafari::baselinePosition):
39119         * rendering/RenderThemeSafari.h:
39120         (RenderThemeSafari):
39121         * rendering/RootInlineBox.cpp:
39122         (WebCore::RootInlineBox::baselinePosition):
39123         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39124         * rendering/RootInlineBox.h:
39125         (RootInlineBox):
39126         * rendering/mathml/RenderMathMLBlock.cpp:
39127         (WebCore::RenderMathMLBlock::baselinePosition):
39128         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39129         * rendering/mathml/RenderMathMLBlock.h:
39130         (RenderMathMLBlock):
39131         (RenderMathMLTable):
39132         * rendering/mathml/RenderMathMLFraction.cpp:
39133         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39134         * rendering/mathml/RenderMathMLFraction.h:
39135         (RenderMathMLFraction):
39136         * rendering/mathml/RenderMathMLOperator.cpp:
39137         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39138         * rendering/mathml/RenderMathMLOperator.h:
39139         * rendering/mathml/RenderMathMLUnderOver.cpp:
39140         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39141         * rendering/mathml/RenderMathMLUnderOver.h:
39142         (RenderMathMLUnderOver):
39143
39144 2012-10-22  Emil A Eklund  <eae@chromium.org>
39145
39146         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39147         https://bugs.webkit.org/show_bug.cgi?id=98692
39148
39149         Reviewed by Dan Bernstein.
39150
39151         We currently overflow/wrap when computing the delta in
39152         RenderBlock::setLogicalTopForChild in cases where we have an
39153         element with a width or height exceeding maxLayoutUnit. When
39154         the delta is later added back in RenderBlock::layoutBlockChild
39155         the number wraps again getting us back to the correct value.
39156
39157         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39158         wraps, which seems like the correct thing to do however this
39159         causes the compare to fail for obvious reasons. By accounting
39160         for this we can keep the asserts (which have proven very
39161         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39162
39163         No new tests, covered by existing tests.
39164
39165         * rendering/LayoutState.cpp:
39166         (WebCore::LayoutState::LayoutState):
39167         * rendering/LayoutState.h:
39168         (WebCore::LayoutState::LayoutState):
39169         (LayoutState):
39170         * rendering/RenderBlock.cpp:
39171         (WebCore::RenderBlock::layoutBlockChild):
39172         * rendering/RenderView.cpp:
39173         (WebCore::RenderView::layout):
39174         * rendering/RenderView.h:
39175         (WebCore::RenderView::addLayoutDelta):
39176         (RenderView):
39177         (WebCore::RenderView::layoutDeltaMatches):
39178
39179 2012-10-22  Tony Chang  <tony@chromium.org>
39180
39181         Fix some baseline flexbox alignment
39182         https://bugs.webkit.org/show_bug.cgi?id=99879
39183
39184         Reviewed by Ojan Vafai.
39185
39186         Fix a bug where we weren't handling margin properly on inline-flexbox.
39187         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39188         a baseline.
39189
39190         Test: css3/flexbox/flexbox-baseline-margins.html
39191
39192         * rendering/RenderBlock.cpp:
39193         (WebCore::RenderBlock::baselinePosition):
39194         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39195         baseline. Previously we would use lastLineBoxBaseline.
39196         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39197         * rendering/RenderBlock.h:
39198         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39199         * rendering/RenderBox.h:
39200         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39201         * rendering/RenderFlexibleBox.cpp:
39202         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39203         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39204         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39205         synthesize a baseline if we have a flexitem without text.
39206         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39207         * rendering/RenderFlexibleBox.h:
39208         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39209         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39210         * rendering/RenderTable.h:
39211         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39212
39213 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39214
39215         Unreviewed Chromium build fix following r132074.
39216
39217         * WebCore.gypi:
39218
39219 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39220
39221         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39222         https://bugs.webkit.org/show_bug.cgi?id=99985
39223
39224         Reviewed by Chris Fleizach.
39225
39226         Update callers for AccessibilityObject's title() and
39227         accessibilityDescription() so they now use AccessibilityText.
39228
39229         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39230         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39231         (accessibilityTitle): New helper function, returns an String with
39232         the title for a AccessibilityObject, using AccessibleText.
39233         (accessibilityDescription): New helper function, returns an String with
39234         the description for a AccessibilityObject, using AccessibleText.
39235         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39236         declarations for accessibilityTitle and accessibilityDescription.
39237
39238         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39239         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39240         (webkitAccessibleGetDescription): Use new helpers for retrieving
39241         the title and description.
39242
39243         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39244         (webkitAccessibleImageGetImageDescription): Use new helpers for
39245         retrieving the title.
39246
39247 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39248
39249         Web Inspector: add timeline instrumentation for scrolling of a layer
39250         https://bugs.webkit.org/show_bug.cgi?id=99461
39251
39252         Reviewed by Pavel Feldman.
39253
39254         - added timeline instrumentation for scrolling of a layer;
39255         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39256
39257         * inspector/InspectorInstrumentation.cpp:
39258         (WebCore):
39259         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39260         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39261         * inspector/InspectorInstrumentation.h:
39262         (InspectorInstrumentation):
39263         (WebCore::InspectorInstrumentation::willScrollLayer):
39264         (WebCore):
39265         (WebCore::InspectorInstrumentation::didScrollLayer):
39266         * inspector/InspectorTimelineAgent.cpp:
39267         (TimelineRecordType):
39268         (WebCore::InspectorTimelineAgent::willScroll):
39269         (WebCore):
39270         (WebCore::InspectorTimelineAgent::didScroll):
39271         * inspector/InspectorTimelineAgent.h:
39272         (InspectorTimelineAgent):
39273         * inspector/front-end/TimelineModel.js:
39274         * inspector/front-end/TimelinePresentationModel.js:
39275         (WebInspector.TimelinePresentationModel._initRecordStyles):
39276         * rendering/RenderLayer.cpp:
39277         (WebCore::RenderLayer::scrollTo):
39278         * platform/ScrollableArea.cpp:
39279         (WebCore::ScrollableArea::scrollPositionChanged):
39280
39281 2012-10-22  Jan Keromnes  <janx@linux.com>
39282
39283         Moved cmdevtools.js to folder cm/
39284
39285         Web Inspector: Move file `cmdevtools.css` to `cm/`
39286         https://bugs.webkit.org/show_bug.cgi?id=99956
39287
39288         Reviewed by Pavel Feldman.
39289
39290         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39291
39292         * WebCore.gypi:
39293         * WebCore.vcproj/WebCore.vcproj:
39294         * inspector/front-end/WebKit.qrc:
39295         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39296         (.CodeMirror):
39297         (.CodeMirror-scroll):
39298         (.cm-highlight):
39299         (@-webkit-keyframes fadeout):
39300         (to):
39301         (.cm-breakpoint):
39302         (.cm-breakpoint-disabled):
39303         (.cm-breakpoint-conditional):
39304         (.cm-execution-line):
39305         (.cm-s-web-inspector-js span.cm-keyword):
39306         (.cm-s-web-inspector-js span.cm-number):
39307         (.cm-s-web-inspector-js span.cm-comment):
39308         (.cm-s-web-inspector-js span.cm-string):
39309         (.cm-s-web-inspector-js span.cm-string-2):
39310         (.cm-s-web-inspector-css span.cm-keyword):
39311         (.cm-s-web-inspector-css span.cm-number):
39312         (.cm-s-web-inspector-css span.cm-comment):
39313         (.cm-s-web-inspector-css span.cm-string):
39314         (.cm-s-web-inspector-css span.cm-string-2):
39315         (.cm-s-web-inspector-css span.cm-link):
39316         (.cm-s-web-inspector-css span.cm-variable):
39317         (.cm-s-web-inspector-html span.cm-meta):
39318         (.cm-s-web-inspector-html span.cm-comment):
39319         (.cm-s-web-inspector-html span.cm-string):
39320         (.cm-s-web-inspector-html span.cm-tag):
39321         (.cm-s-web-inspector-html span.cm-attribute):
39322         (.cm-s-web-inspector-html span.cm-link):
39323         (.webkit-html-message-bubble):
39324         (.webkit-html-warning-message):
39325         (.webkit-html-error-message):
39326         (.webkit-html-message-line):
39327         (.webkit-html-message-line-hover):
39328
39329 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39330
39331         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39332         https://bugs.webkit.org/show_bug.cgi?id=99997
39333
39334         Reviewed by Pavel Feldman.
39335
39336         Source mappings could now store a link to temporary uiSourceCodes only.
39337         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39338         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39339
39340         * inspector/front-end/CompilerScriptMapping.js:
39341         (WebInspector.CompilerScriptMapping):
39342         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39343         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39344         (WebInspector.CompilerScriptMapping.prototype._reset):
39345         * inspector/front-end/NetworkUISourceCodeProvider.js:
39346         (WebInspector.NetworkUISourceCodeProvider):
39347         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39348         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39349         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39350         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39351         * inspector/front-end/SASSSourceMapping.js:
39352         (WebInspector.SASSSourceMapping):
39353         (_bindUISourceCode):
39354         (_reset):
39355
39356 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39357
39358         Gstreamer 1.0 not working
39359         https://bugs.webkit.org/show_bug.cgi?id=99852
39360
39361         Reviewed by Philippe Normand.
39362
39363         There was a series of trivial issue, g_object_is_floating() was called
39364         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39365         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39366         to GST_MESSAGE_DURATION_CHANGED.
39367
39368         Most failing test passes now.
39369
39370         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39371         (WTF::adoptGRef):
39372         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39373         (webkitGstGetPadCaps):
39374         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39375         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39376
39377 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39378
39379         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39380         https://bugs.webkit.org/show_bug.cgi?id=99989
39381
39382         Reviewed by Pavel Feldman.
39383
39384         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39385         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39386          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39387          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39388
39389         * inspector/front-end/BreakpointManager.js:
39390         (WebInspector.BreakpointManager.breakpointStorageId):
39391         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39392         * inspector/front-end/NetworkUISourceCodeProvider.js:
39393         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39394         * inspector/front-end/ResourceScriptMapping.js:
39395         (WebInspector.ResourceScriptMapping):
39396         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39397         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39398         (WebInspector.ResourceScriptMapping.prototype.addScript):
39399         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39400         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39401         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39402         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39403         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39404         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39405         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39406         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39407         (WebInspector.ResourceScriptMapping.prototype._reset):
39408
39409 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39410
39411         [css3-text] Add rendering support for -webkit-text-decoration-style
39412         https://bugs.webkit.org/show_bug.cgi?id=94094
39413
39414         Reviewed by Julien Chaffraix.
39415
39416         This patch implements the "text-decoration-style" property rendering as
39417         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39418         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39419
39420         Additionally, Mozilla implementation details can be found here:
39421         https://developer.mozilla.org/en/CSS/text-decoration-style
39422
39423         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39424                fast/css3-text/css3-text-decoration/text-decoration-style.html
39425
39426         * platform/graphics/GraphicsContext.h:
39427         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39428         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39429         * platform/graphics/cg/GraphicsContextCG.cpp:
39430         (WebCore::GraphicsContext::drawLine):
39431         * platform/graphics/qt/GraphicsContextQt.cpp:
39432         (WebCore::toQPenStyle):
39433         (WebCore::GraphicsContext::drawLine):
39434         * platform/graphics/skia/PlatformContextSkia.cpp:
39435         (WebCore::PlatformContextSkia::setupPaintForStroking):
39436         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39437         (WebCore::createPen):
39438         * platform/graphics/wx/GraphicsContextWx.cpp:
39439         (WebCore::strokeStyleToWxPenStyle):
39440         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39441         platform-specific stroke handling. Some styles requires
39442         platform-specific implementation (handled in bug 92868).
39443         * rendering/InlineTextBox.cpp:
39444         (WebCore::InlineTextBox::paint):
39445         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39446         translates text decoration to stroke styles.
39447         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39448         not specify a property for line thickness (like border-width does for
39449         border style), so we statically set it to 1 for now. The 'double' style
39450         implementation simply adds a parallel line (depending if it is
39451         underline, overline or line-through) and the space between lines follows
39452         the approach used by border's 'double' style.
39453         * rendering/InlineTextBox.h:
39454         (InlineTextBox):
39455         * rendering/style/RenderStyle.h:
39456         * rendering/style/RenderStyleConstants.h:
39457         Added text decoration style rendering support to
39458         InlineTextBox::paintDecoration().
39459
39460 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39461
39462         [Qt] Use the DNS resolve queue
39463         https://bugs.webkit.org/show_bug.cgi?id=99994
39464
39465         Reviewed by Simon Hausmann.
39466
39467         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39468         during parsing. It also ensure each hostname is only appears once in the queue.
39469
39470         * Target.pri:
39471         * platform/network/qt/DNSQt.cpp: Added.
39472         (DnsPrefetchHelper):
39473         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39474         (WebCore::DnsPrefetchHelper::lookup):
39475         (WebCore::DnsPrefetchHelper::lookedUp):
39476         (WebCore::prefetchDNS):
39477         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39478         (WebCore::DNSResolveQueue::platformResolve):
39479         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39480         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39481         (DnsPrefetchHelper):
39482
39483 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39484
39485         HTMLBaseElement href attribute binding returns wrong URL
39486         https://bugs.webkit.org/show_bug.cgi?id=98184
39487
39488         Reviewed by Ojan Vafai.
39489
39490         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39491         base element itself. If there is no href attribute this should return the fallback base URL.
39492
39493         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39494
39495         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39496                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39497
39498         * html/HTMLBaseElement.cpp:
39499         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39500         of the generic [Reflect, URL] binding.
39501         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39502         * html/HTMLBaseElement.h:
39503         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39504
39505 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39506
39507         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39508         https://bugs.webkit.org/show_bug.cgi?id=99991
39509
39510         Reviewed by Alexander Pavlov.
39511
39512         * inspector/front-end/UISourceCode.js:
39513         (WebInspector.UISourceCode):
39514
39515 2012-10-22  Florin Malita  <fmalita@chromium.org>
39516
39517         Incorrect embedded SVG image sizing on first load
39518         https://bugs.webkit.org/show_bug.cgi?id=99489
39519
39520         Reviewed by Nikolas Zimmermann.
39521
39522         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39523         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39524         already been performed.
39525
39526         Test: svg/custom/svg-image-initial-size.html
39527
39528         * rendering/svg/RenderSVGImage.cpp:
39529         (WebCore::RenderSVGImage::imageChanged):
39530
39531 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39532
39533         Remove monthFormatInLDML
39534         https://bugs.webkit.org/show_bug.cgi?id=99971
39535
39536         Reviewed by Kent Tamura.
39537
39538         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39539
39540         No new tests. Just removing unused code.
39541
39542         * platform/LocalizedStrings.h:
39543         (WebCore):
39544
39545 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39546
39547         [GTK] Enable Microdata DOM API
39548         https://bugs.webkit.org/show_bug.cgi?id=99033
39549
39550         Reviewed by Martin Robinson.
39551
39552         Enable the Microdata DOM API, but still disable it when the unstable
39553         features should be disabled (for instance in release builds).
39554
39555         No new tests - related tests are being unskipped and are expected to pass.
39556
39557         * GNUmakefile.am:
39558         * GNUmakefile.features.am:
39559         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39560         API GObject bindings are generated and built.
39561
39562 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39563
39564         [GTK] Enable CSP 1.1
39565         https://bugs.webkit.org/show_bug.cgi?id=99064
39566
39567         Reviewed by Martin Robinson.
39568
39569         Enable CSP 1.1 in development builds but keep it disabled when the
39570         unstable features should not be enabled (like in stable releases).
39571
39572         No new tests - they already exist and will be unskipped.
39573
39574         * GNUmakefile.am:
39575         * GNUmakefile.features.am:
39576
39577 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39578
39579         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39580         https://bugs.webkit.org/show_bug.cgi?id=98514
39581
39582         Reviewed by Kenneth Rohde Christiansen.
39583
39584         The problem is that we call setFixedVisibleContentRect, which triggers
39585         a layout, after the document has been put in the page cache and before
39586         the load has been actually committed.
39587
39588         This applies the same trick as with setFixedLayoutSize by passing the rect
39589         in Frame::createView and calling setFixedVisibleContentRect before the
39590         new FrameView gets attached to the Frame/Document to prevent the layout.
39591
39592         * WebCore.exp.in:
39593         * page/Frame.cpp:
39594         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39595         useFixedLayout arguments as well since they are used exceptionally.
39596         * page/Frame.h:
39597         (Frame):
39598
39599 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39600
39601         [Qt] Handle GET of blob URLs.
39602         https://bugs.webkit.org/show_bug.cgi?id=99053
39603
39604         Reviewed by Simon Hausmann.
39605
39606         Let BlobResourceHandle handle Blob request internally.
39607
39608         * platform/network/qt/ResourceHandleQt.cpp:
39609         (WebCore::ResourceHandle::loadResourceSynchronously):
39610
39611 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39612
39613         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39614         https://bugs.webkit.org/show_bug.cgi?id=99966
39615
39616         Reviewed by Kent Tamura.
39617
39618         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39619
39620         No new tests. Confirmed the fix by using Address Sanitizer.
39621
39622         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39623         (WebCore::HarfBuzzShaper::shape):
39624         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39625         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39626         (HarfBuzzShaper):
39627
39628 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39629
39630         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39631         https://bugs.webkit.org/show_bug.cgi?id=99815
39632
39633         Reviewed by Hajime Morita.
39634
39635         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39636         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39637         allow attaching twice if not necessary.
39638
39639         We have confirmed that this patch does not regress the performance. The summary of the
39640         performance test is the following:
39641
39642         Dromaeo/dom-modify.html [runs/s]:
39643                                median stdev    min    max
39644            without this patch:   3928   184   3655   4361
39645            with this patch   :   3925   178   3652   4350
39646
39647         Parser/html5-full-render.html [s]:
39648                                median stdev    min    max
39649            without this patch:   3821    17   3811   3850
39650            with this patch   :   3838   4.4   3833   3844
39651
39652         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39653
39654         * dom/ContainerNode.cpp:
39655         (WebCore):
39656         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39657         be attached in advance because of ShadowDOM attaching process.
39658         * dom/ContainerNode.h:
39659         (ContainerNode):
39660         (WebCore):
39661         (WebCore::ContainerNode::attachChildren):
39662         * dom/Element.cpp:
39663         (WebCore::Element::attach):
39664         * dom/ShadowRoot.cpp:
39665         (WebCore::ShadowRoot::attach):
39666
39667 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39668
39669         Web Inspector: merge "docked" state into the "dock side" enum.
39670         https://bugs.webkit.org/show_bug.cgi?id=99717
39671
39672         Reviewed by Vsevolod Vlasov.
39673
39674         Otherwise, it is hard to manage these inter-dependent flags.
39675
39676         * WebCore.exp.in:
39677         * inspector/InspectorFrontendClient.h:
39678         (InspectorFrontendClient):
39679         * inspector/InspectorFrontendClientLocal.cpp:
39680         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39681         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39682         * inspector/InspectorFrontendClientLocal.h:
39683         (InspectorFrontendClientLocal):
39684         * inspector/InspectorFrontendHost.cpp:
39685         (WebCore::InspectorFrontendHost::requestSetDockSide):
39686         * inspector/InspectorFrontendHost.h:
39687         (InspectorFrontendHost):
39688         * inspector/InspectorFrontendHost.idl:
39689         * inspector/front-end/DockController.js:
39690         (WebInspector.DockController):
39691         (WebInspector.DockController.prototype._updateUI.get sides):
39692         (WebInspector.DockController.prototype._updateUI):
39693         (WebInspector.DockController.prototype._toggleDockState):
39694         * inspector/front-end/InspectorFrontendAPI.js:
39695         (InspectorFrontendAPI.setAttachedWindow):
39696         (InspectorFrontendAPI.setDockSide):
39697         * inspector/front-end/InspectorFrontendHostStub.js:
39698         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39699         * inspector/front-end/externs.js:
39700
39701 2012-10-22  MORITA Hajime  <morrita@google.com>
39702
39703         Unreviewed follow up to update test result after r132033.
39704
39705         * bindings/scripts/test/V8/V8TestObj.cpp:
39706         (WebCore::V8TestObj::installPerContextProperties):
39707
39708 2012-10-21  MORITA Hajime  <morrita@google.com>
39709
39710         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39711         https://bugs.webkit.org/show_bug.cgi?id=99954
39712
39713         Reviewed by Kentaro Hara.
39714
39715         It now refers ScriptExecutionContext of the creation context instead of document() of
39716         wrapped object.
39717
39718         No new tests. No behavior change at this time.
39719
39720         * bindings/scripts/CodeGeneratorV8.pm:
39721         (GenerateImplementation):
39722
39723 2012-10-21  Kent Tamura  <tkent@chromium.org>
39724
39725         Page popup: Fix crash by events after closing
39726         https://bugs.webkit.org/show_bug.cgi?id=99951
39727
39728         Reviewed by Hajime Morita.
39729
39730         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39731
39732         No new tests. The bug is timing-dependent.
39733
39734         * page/DOMWindowPagePopup.cpp:
39735         (WebCore::DOMWindowPagePopup::uninstall):
39736         Added. Calls Supplementable::removeSupplement.
39737         * page/DOMWindowPagePopup.h:
39738         (DOMWindowPagePopup): Declare uninstall.
39739         * platform/Supplementable.h:
39740         (WebCore::Supplementable::removeSupplement): Added.
39741
39742 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39743
39744         Refactor picker tests to fix flakiness and share code
39745         https://bugs.webkit.org/show_bug.cgi?id=99671
39746
39747         Reviewed by Kent Tamura.
39748
39749         Disable transitions until the picker is fully ready. This should fix flakiness.
39750
39751         No new tests.
39752
39753         * Resources/pagepopups/calendarPicker.css:
39754         (.preparing .unavailable): Disable transitions.
39755         (.preparing .available): Disable transitions.
39756         * Resources/pagepopups/calendarPicker.js:
39757         (CalendarPicker): Set "preparing" class.
39758         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39759
39760 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39761
39762         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39763         https://bugs.webkit.org/show_bug.cgi?id=99567
39764
39765         Reviewed by Pavel Feldman.
39766
39767         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39768         Otherwise, node won't be removed from the inspector.
39769
39770         Test: inspector/elements/update-shadowdom.html
39771
39772         * dom/ContainerNode.cpp:
39773         (WebCore::dispatchChildRemovalEvents):
39774
39775 2012-10-21  Andreas Kling  <kling@webkit.org>
39776
39777         Remove Page::javaScriptURLsAreAllowed setting.
39778         <http://webkit.org/b/99944>
39779
39780         Reviewed by Anders Carlsson.
39781
39782         This setting was exposed through internal WebView API in Apple's WebKit1.
39783         There are no longer any clients of that API.
39784
39785         This is a step towards preventing elements from modifying their own attributes
39786         below attributeChanged().
39787
39788         * WebCore.exp.in:
39789         * WebCore.order:
39790         * bindings/ScriptControllerBase.cpp:
39791         (WebCore::ScriptController::executeIfJavaScriptURL):
39792         * html/HTMLAnchorElement.cpp:
39793         (WebCore::HTMLAnchorElement::parseAttribute):
39794         * page/Page.cpp:
39795         (WebCore::Page::Page):
39796         * page/Page.h:
39797         (Page):
39798
39799 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39800
39801         Add a separate flag for rgb swizzling whether it can be modified or not
39802         https://bugs.webkit.org/show_bug.cgi?id=98728
39803
39804         BitmapTexture swizzles the source image if the OpenGL driver
39805         doesn't support the BGRA extension.
39806         In case of directly composited images, the source image should not
39807         be modified.
39808
39809         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39810
39811         Reviewed by Noam Rosenthal.
39812
39813         No new tests as this is only testable on specific hardware and
39814         currently not avaiable in the bots.
39815
39816         * platform/graphics/texmap/TextureMapper.h:
39817         (BitmapTexture):
39818         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39819         (WebCore::TextureMapperTile::updateContents):
39820         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39821         (WebCore::TextureMapperTiledBackingStore::updateContents):
39822         * platform/graphics/texmap/TextureMapperBackingStore.h:
39823         (TextureMapperTile):
39824         (TextureMapperTiledBackingStore):
39825         (WebCore::TextureMapperTiledBackingStore::updateContents):
39826         * platform/graphics/texmap/TextureMapperGL.cpp:
39827         (WebCore::TextureMapperGL::drawRepaintCounter):
39828         (WebCore::BitmapTextureGL::updateContents):
39829         * platform/graphics/texmap/TextureMapperGL.h:
39830         (BitmapTextureGL):
39831         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39832         (WebCore::BitmapTextureImageBuffer::updateContents):
39833         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39834         (BitmapTextureImageBuffer):
39835         * platform/graphics/texmap/TextureMapperLayer.cpp:
39836         (WebCore::TextureMapperLayer::updateBackingStore):
39837
39838 2012-10-21  Antti Koivisto  <antti@apple.com>
39839
39840         Factor stylesheet invalidation analysis code into a class
39841         https://bugs.webkit.org/show_bug.cgi?id=99933
39842
39843         Reviewed by Sam Weinig.
39844
39845         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39846         further progress easier.
39847
39848         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39849         and DocumentStyleSheetCollection there. No functional changes.
39850
39851         * CMakeLists.txt:
39852         * GNUmakefile.list.am:
39853         * Target.pri:
39854         * WebCore.gypi:
39855         * WebCore.vcproj/WebCore.vcproj:
39856         * WebCore.xcodeproj/project.pbxproj:
39857         * css/SelectorChecker.cpp:
39858         (WebCore):
39859         * css/SelectorChecker.h:
39860         (WebCore):
39861         * css/StyleInvalidationAnalysis.cpp: Added.
39862         (WebCore):
39863         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39864         (WebCore::StyleInvalidationAnalysis::create):
39865         (WebCore::determineSelectorScopes):
39866         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39867         (WebCore::elementMatchesSelectorScopes):
39868         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39869         * css/StyleInvalidationAnalysis.h: Added.
39870         (WebCore):
39871         (StyleInvalidationAnalysis):
39872         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39873         * css/StyleResolver.cpp:
39874         (WebCore::StyleResolver::checkRegionSelector):
39875         * css/StyleResolver.h:
39876         (StyleResolver):
39877         * dom/DocumentStyleSheetCollection.cpp:
39878         (WebCore):
39879         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39880         * dom/DocumentStyleSheetCollection.h:
39881         (DocumentStyleSheetCollection):
39882
39883 2012-10-08  Robert Hogan  <robert@webkit.org>
39884
39885         In some float situations, the original layout is wrong and only corrects itself on repaint
39886         https://bugs.webkit.org/show_bug.cgi?id=18939
39887
39888         Reviewed by Levi Weintraub.
39889
39890         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39891         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39892         does not.
39893
39894         Test: fast/block/br-with-clearance-after-collapsing-space.html
39895
39896         * rendering/RenderBlockLineLayout.cpp:
39897         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39898
39899 2012-10-08  Robert Hogan  <robert@webkit.org>
39900
39901         floated element with negative margin causes text wrap bug
39902         https://bugs.webkit.org/show_bug.cgi?id=94825
39903
39904         Reviewed by Levi Weintraub.
39905
39906         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39907         floats on the line is at least as much as the offset given by border, margin and padding. This only
39908         happens when a negative margin on the float brings its edge back before the offset
39909         given by the border, margin and padding of its parents.
39910
39911         Test: fast/block/float/float-on-line-obeys-container-padding.html
39912
39913         * rendering/RenderBlockLineLayout.cpp:
39914         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39915
39916 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39917
39918         Fix 'make dist' for the GTK+ port
39919
39920         * GNUmakefile.am: Add missing files to the source list.
39921         * GNUmakefile.list.am: Ditto.
39922
39923 2012-10-20  Dan Bernstein  <mitz@apple.com>
39924
39925         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39926         https://bugs.webkit.org/show_bug.cgi?id=99918
39927
39928         Reviewed by Geoff Garen.
39929
39930         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39931         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39932
39933         Test: fast/text/zero-font-size-2.html
39934
39935         * platform/graphics/mac/FontMac.mm:
39936         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39937
39938 2012-10-20  Andreas Kling  <kling@webkit.org>
39939
39940         Clean up QualifiedName-as-hash-key scenario.
39941         <http://webkit.org/b/99394>
39942
39943         Reviewed by Anders Carlsson.
39944
39945         Cache the hash on QualifiedNameImpl after the first time it's computed.
39946         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39947         which I believe is fine, since QualifiedName is a shared object.
39948
39949         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39950         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39951         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39952         added to  the global QualifiedName cache, etc.
39953
39954         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39955         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39956         directly instead.
39957
39958         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39959
39960         * dom/QualifiedName.cpp:
39961         (WebCore::nullQName):
39962         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
39963         * dom/QualifiedName.h:
39964         (QualifiedNameImpl):
39965         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39966         (WebCore::QualifiedNameHash::hash):
39967         * svg/SVGElement.h:
39968         (WebCore::SVGAttributeHashTranslator::hash):
39969
39970 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
39971
39972         [EFL][AC] Build fix after r131933
39973         https://bugs.webkit.org/show_bug.cgi?id=99901
39974
39975         Reviewed by Kentaro Hara.
39976
39977         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
39978
39979         No new tests.
39980
39981         * CMakeLists.txt:
39982
39983 2012-10-19  Adam Barth  <abarth@webkit.org>
39984
39985         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
39986         https://bugs.webkit.org/show_bug.cgi?id=99876
39987
39988         Reviewed by Kentaro Hara.
39989
39990         We want to remove the document parameter to instantiateV8Object. There
39991         isn't always a Document available, so it doesn't make sense to pass it
39992         as a parameter. We're just waiting for a V8 API change so we can still
39993         construct Node wrappers quickly.
39994
39995         This patch removes a use of the document that snuck in. Rather than
39996         passing the ScriptExecutionContext around, we get it from the
39997         CreationContext of the prototype object (and only when we actually need
39998         it).
39999
40000         * Modules/notifications/NotificationCenter.cpp:
40001         * Modules/notifications/NotificationCenter.h:
40002         (NotificationCenter):
40003         * bindings/scripts/CodeGeneratorV8.pm:
40004         (GenerateHeader):
40005         (GenerateConstructorGetter):
40006         (GenerateImplementation):
40007         (GenerateToV8Converters):
40008         * bindings/v8/V8DOMWindowShell.cpp:
40009         (WebCore::V8DOMWindowShell::installDOMWindow):
40010         * bindings/v8/V8DOMWrapper.cpp:
40011         (WebCore::V8DOMWrapper::instantiateV8Object):
40012         * bindings/v8/V8PerContextData.cpp:
40013         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
40014         (WebCore::V8PerContextData::constructorForTypeSlowCase):
40015         * bindings/v8/V8PerContextData.h:
40016         (WebCore::V8PerContextData::createWrapperFromCache):
40017         (WebCore::V8PerContextData::constructorForType):
40018         (V8PerContextData):
40019         * bindings/v8/WorkerContextExecutionProxy.cpp:
40020         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
40021         * bindings/v8/WrapperTypeInfo.h:
40022         (WebCore):
40023         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
40024
40025 2012-10-19  Florin Malita  <fmalita@chromium.org>
40026
40027         Incorrect pattern scaling
40028         https://bugs.webkit.org/show_bug.cgi?id=99870
40029
40030         Reviewed by Dirk Schulze.
40031
40032         The pattern space transform scale should reflect the tile_size(user space)
40033         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
40034
40035         Test: svg/custom/pattern-scaling.svg
40036
40037         * rendering/svg/RenderSVGResourcePattern.cpp:
40038         (WebCore::RenderSVGResourcePattern::applyResource):
40039
40040 2012-10-19  Tony Chang  <tony@chromium.org>
40041
40042         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
40043         https://bugs.webkit.org/show_bug.cgi?id=97827
40044
40045         Reviewed by Ojan Vafai.
40046
40047         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
40048         border and padding), so just add an assert.
40049
40050         No new tests, the assert is for code clarity.
40051
40052         * rendering/RenderFlexibleBox.cpp:
40053         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
40054
40055 2012-10-19  Tony Chang  <tony@chromium.org>
40056
40057         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
40058         https://bugs.webkit.org/show_bug.cgi?id=99883
40059
40060         Reviewed by Ojan Vafai.
40061
40062         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
40063         saving the old height, calling update logical height, then restoring the old height.
40064
40065         No new tests, this is just a refactoring.
40066
40067         * rendering/RenderBlock.cpp:
40068         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
40069         * rendering/RenderBox.cpp:
40070         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
40071         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
40072         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
40073
40074 2012-10-19  Pablo Flouret  <pablof@motorola.com>
40075
40076         Implement setRangeText() on text controls
40077         https://bugs.webkit.org/show_bug.cgi?id=91907
40078
40079         Reviewed by Kent Tamura.
40080
40081         setRangeText() replaces a range of text with some other text, and
40082         adjusts the existing selection according to its parameters.
40083
40084         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
40085
40086         Tests: fast/forms/color/color-setrangetext.html
40087                fast/forms/date/date-setrangetext.html
40088                fast/forms/datetime/datetime-setrangetext.html
40089                fast/forms/datetimelocal/datetimelocal-setrangetext.html
40090                fast/forms/file/file-setrangetext.html
40091                fast/forms/hidden/hidden-setrangetext.html
40092                fast/forms/image/image-setrangetext.html
40093                fast/forms/month/month-setrangetext.html
40094                fast/forms/number/number-setrangetext.html
40095                fast/forms/range/range-setrangetext.html
40096                fast/forms/search/search-setrangetext.html
40097                fast/forms/setrangetext.html
40098                fast/forms/textarea/textarea-setrangetext.html
40099                fast/forms/time/time-setrangetext.html
40100                fast/forms/week/week-setrangetext.html
40101
40102
40103         * bindings/scripts/CodeGeneratorGObject.pm:
40104         (SkipFunction):
40105             The GObject generator doesn't support function overloads, so skip the
40106             version of setRangeText() that has only one argument, its behavior
40107             can be emulated with the four-argument version.
40108
40109         * html/InputType.cpp:
40110         (WebCore::InputType::supportsSelectionAPI):
40111         (WebCore):
40112         * html/InputType.h:
40113         (InputType):
40114             Add supportsSelectionAPI() which indicates whether the various
40115             selection api functions like setRangeText, setSelectionRange, etc.
40116             are supported by this input element.
40117
40118         * html/BaseTextInputType.cpp:
40119         (WebCore::BaseTextInputType::supportsSelectionAPI):
40120         (WebCore):
40121         * html/BaseTextInputType.h:
40122         (BaseTextInputType):
40123             Text-based input types support the selection APIs.
40124
40125         * html/EmailInputType.cpp:
40126         (WebCore::EmailInputType::supportsSelectionAPI):
40127         (WebCore):
40128         * html/EmailInputType.h:
40129         (EmailInputType):
40130             Email inputs don't support the selection APIs.
40131
40132         * html/HTMLInputElement.cpp:
40133         (WebCore::HTMLInputElement::setRangeText):
40134         * html/HTMLInputElement.h:
40135         (HTMLInputElement):
40136             Add a setRangeText override which checks if it should apply to the
40137             input type, and calls the actual implementation on the parent class.
40138         * html/HTMLInputElement.idl:
40139         * html/HTMLTextAreaElement.idl:
40140
40141         * html/HTMLTextFormControlElement.cpp:
40142         (WebCore::HTMLTextFormControlElement::setRangeText):
40143         * html/HTMLTextFormControlElement.h:
40144         (HTMLTextFormControlElement):
40145             setRangeText implementation.
40146
40147
40148 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40149
40150         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40151         https://bugs.webkit.org/show_bug.cgi?id=99782
40152
40153         Reviewed by Sam Weinig.
40154
40155         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40156         to use it instead of adding a line to StyleBuilder.
40157         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40158         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40159
40160         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40161
40162         * css/StyleResolver.cpp:
40163         (WebCore):
40164         (WebCore::StyleResolver::applyProperty):
40165
40166 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40167
40168         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40169         https://bugs.webkit.org/show_bug.cgi?id=96566
40170
40171         Reviewed by Tony Chang.
40172
40173         Stop propagation of error events fired at internal indexing requests as a result of
40174         aborting, as they should not be visible to scripts.
40175
40176         Test: storage/indexeddb/index-population.html
40177
40178         * Modules/indexeddb/IDBObjectStore.cpp:
40179         (WebCore::IDBObjectStore::createIndex):
40180         * Modules/indexeddb/IDBRequest.cpp:
40181         (WebCore::IDBRequest::IDBRequest):
40182         (WebCore::IDBRequest::dispatchEvent):
40183         * Modules/indexeddb/IDBRequest.h:
40184         (WebCore::IDBRequest::preventPropagation):
40185         (IDBRequest):
40186
40187 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40188
40189         Remove .get() calls in assertions as suggested by Darin Adler.
40190         
40191         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40192         (PlatformCALayer::appendSublayer):
40193         (PlatformCALayer::insertSublayer):
40194         (PlatformCALayer::replaceSublayer):
40195
40196 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40197
40198         Fix a hang when combining tile cache layers with preserve-3d or reflections
40199         https://bugs.webkit.org/show_bug.cgi?id=99890
40200         <rdar://problem/12539560>
40201
40202         Reviewed by Dean Jackson.
40203
40204         The new tile cache code added an updateSublayers() call when switching to/from
40205         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40206         add a layer as a child of itself, causing a hang in CA.
40207         
40208         Fix by removing all the explicit calls to updateFoo when updating the structural
40209         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40210         on the fact that these flag-dirtying functions get called before the later functions
40211         that process those dirty flags. This is assured by some reordering of the update
40212         function calls.
40213         
40214         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40215         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40216         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40217         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40218         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40219         only do this work if a sublayer requested it).
40220         
40221         Tests: compositing/tiling/preserve3d-tiled.html
40222                compositing/tiling/reflected-tiled.html
40223
40224         * platform/graphics/ca/GraphicsLayerCA.cpp:
40225         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40226         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40227         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40228         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40229         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40230         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40231         (PlatformCALayer::insertSublayer): Ditto.
40232         (PlatformCALayer::replaceSublayer): Ditto.
40233
40234 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40235
40236         AX: aria-hidden=false does not work as expected
40237         https://bugs.webkit.org/show_bug.cgi?id=98787
40238
40239         Reviewed by Beth Dakin.
40240
40241         ARIA requires that aria-hidden=false override an element's native visibility and include that
40242         node in the AX hierarchy.
40243
40244         To accomplish this we have to allow invisible items to be included, as well as items that
40245         have no renderers associated with them.
40246
40247         Test: accessibility/aria-hidden-negates-no-visibility.html
40248
40249         * accessibility/AXObjectCache.cpp:
40250         (WebCore::AXObjectCache::getOrCreate):
40251         * accessibility/AccessibilityARIAGrid.cpp:
40252         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40253         (WebCore::AccessibilityARIAGrid::addChildren):
40254         * accessibility/AccessibilityARIAGrid.h:
40255         (AccessibilityARIAGrid):
40256         * accessibility/AccessibilityNodeObject.cpp:
40257         (WebCore):
40258        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40259         (WebCore::AccessibilityNodeObject::insertChild):
40260         (WebCore::AccessibilityNodeObject::addChild):
40261         (WebCore::AccessibilityNodeObject::addChildren):
40262         (WebCore::AccessibilityNodeObject::textUnderElement):
40263         * accessibility/AccessibilityNodeObject.h:
40264         (AccessibilityNodeObject):
40265         * accessibility/AccessibilityObject.cpp:
40266         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40267         (WebCore):
40268         * accessibility/AccessibilityObject.h:
40269         (AccessibilityObject):
40270         (WebCore::AccessibilityObject::addChild):
40271         (WebCore::AccessibilityObject::insertChild):
40272         * accessibility/AccessibilityRenderObject.cpp:
40273         (WebCore):
40274         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40275         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40276         (WebCore::AccessibilityRenderObject::addChildren):
40277         * accessibility/AccessibilityRenderObject.h:
40278         (AccessibilityRenderObject):
40279
40280 2012-10-19  Michael Saboff  <msaboff@apple.com>
40281
40282         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40283         https://bugs.webkit.org/show_bug.cgi?id=99735
40284
40285         Reviewed by Filip Pizlo.
40286
40287         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40288         to chromium platform version of LinkHashChromium.cpp.
40289         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40290         new form.
40291
40292         No changes to functionality, so no new tests.
40293
40294         * WebCore.exp.in:
40295         * loader/HistoryController.cpp:
40296         (WebCore::addVisitedLink):
40297         * page/PageGroup.cpp:
40298         (WebCore::PageGroup::addVisitedLink):
40299         * platform/LinkHash.cpp:
40300         (WebCore::visitedLinkHashInline):
40301         (WebCore::visitedLinkHash):
40302         * platform/LinkHash.h:
40303         * platform/chromium/LinkHashChromium.cpp:
40304         (WebCore::visitedLinkHash):
40305
40306 2012-10-19  Michael Saboff  <msaboff@apple.com>
40307
40308         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40309         https://bugs.webkit.org/show_bug.cgi?id=99794
40310
40311         Reviewed by Filip Pizlo.
40312
40313         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40314
40315         No new test, added 8 bit path.
40316
40317         * platform/text/cf/StringCF.cpp:
40318         (WTF::String::String):
40319
40320 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40321
40322         Page should be removed from the cache right after restore was called.
40323         https://bugs.webkit.org/show_bug.cgi?id=99737
40324
40325         Reviewed by Brady Eidson.
40326
40327         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40328         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40329         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40330         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40331
40332         No new tests.
40333
40334         * loader/FrameLoader.cpp:
40335         (WebCore::FrameLoader::commitProvisionalLoad):
40336
40337 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40338
40339         [WebGL] getUniformLocation fails for uniform array name without array brackets
40340         https://bugs.webkit.org/show_bug.cgi?id=99854
40341
40342         Reviewed by Dean Jackson.
40343
40344         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40345         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40346         returns the array location.
40347
40348         In the process of adding a check to the following Khronos WebGL conformance test:
40349         conformance/glsl/misc/glsl-long-variable-names.html
40350
40351         * platform/graphics/ANGLEWebKitBridge.cpp:
40352         (WebCore::getSymbolInfo):
40353             Before, we used to check that the symbol size was greater than one to determine that the
40354             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40355             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40356             names.
40357             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40358             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40359             an array.
40360             Then, we create symbols for each array element like before. However, instead of
40361             replacing the "0" in array[0]" with each index, we take the base name "array" and
40362             append array brackets containing each index (e.g. "array" + "[7]").
40363         * platform/graphics/ANGLEWebKitBridge.h:
40364         (ANGLEShaderSymbol):
40365             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40366             anymore, this is the only way to identify arrays.
40367
40368 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40369
40370         Unreviewed, rolling out r131915.
40371         http://trac.webkit.org/changeset/131915
40372         https://bugs.webkit.org/show_bug.cgi?id=98787
40373
40374         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40375
40376         * accessibility/AXObjectCache.cpp:
40377         (WebCore::AXObjectCache::getOrCreate):
40378         (WebCore::AXObjectCache::nodeIsTextControl):
40379         * accessibility/AXObjectCache.h:
40380         (WebCore):
40381         * accessibility/AccessibilityARIAGrid.cpp:
40382         (WebCore::AccessibilityARIAGrid::addChild):
40383         (WebCore::AccessibilityARIAGrid::addChildren):
40384         * accessibility/AccessibilityARIAGrid.h:
40385         (AccessibilityARIAGrid):
40386         * accessibility/AccessibilityNodeObject.cpp:
40387         (WebCore::AccessibilityNodeObject::elementRect):
40388         (WebCore::AccessibilityNodeObject::addChildren):
40389         (WebCore::AccessibilityNodeObject::textUnderElement):
40390         * accessibility/AccessibilityNodeObject.h:
40391         (AccessibilityNodeObject):
40392         * accessibility/AccessibilityObject.cpp:
40393         * accessibility/AccessibilityObject.h:
40394         (AccessibilityObject):
40395         * accessibility/AccessibilityRenderObject.cpp:
40396         (WebCore::textIteratorBehaviorForTextRange):
40397         (WebCore):
40398         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40399         (WebCore::AccessibilityRenderObject::addChildren):
40400         * accessibility/AccessibilityRenderObject.h:
40401         (AccessibilityRenderObject):
40402
40403 2012-10-19  Tony Chang  <tony@chromium.org>
40404
40405         Unreviewed, rolling out r131936.
40406         http://trac.webkit.org/changeset/131936
40407         https://bugs.webkit.org/show_bug.cgi?id=99717
40408
40409         Broke the clang build
40410
40411         * WebCore.exp.in:
40412         * inspector/InspectorFrontendClient.h:
40413         (InspectorFrontendClient):
40414         * inspector/InspectorFrontendClientLocal.cpp:
40415         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40416         (WebCore):
40417         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40418         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40419         * inspector/InspectorFrontendClientLocal.h:
40420         (InspectorFrontendClientLocal):
40421         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40422         * inspector/InspectorFrontendHost.cpp:
40423         (WebCore::InspectorFrontendHost::requestAttachWindow):
40424         (WebCore):
40425         (WebCore::InspectorFrontendHost::requestDetachWindow):
40426         (WebCore::InspectorFrontendHost::requestSetDockSide):
40427         * inspector/InspectorFrontendHost.h:
40428         (InspectorFrontendHost):
40429         * inspector/InspectorFrontendHost.idl:
40430         * inspector/front-end/DockController.js:
40431         (WebInspector.DockController):
40432         (WebInspector.DockController.prototype.setDocked):
40433         (WebInspector.DockController.prototype._innerSetDocked.set if):
40434         (WebInspector.DockController.prototype._innerSetDocked):
40435         (WebInspector.DockController.prototype._updateUI.get states):
40436         (WebInspector.DockController.prototype._updateUI):
40437         (WebInspector.DockController.prototype._toggleDockState):
40438         * inspector/front-end/InspectorFrontendAPI.js:
40439         (InspectorFrontendAPI.setAttachedWindow):
40440         (InspectorFrontendAPI.setDockSide):
40441         * inspector/front-end/InspectorFrontendHostStub.js:
40442         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40443         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40444         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40445         * inspector/front-end/externs.js:
40446         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40447         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40448
40449 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40450
40451         REGRESSION (r130699): 5 various fast/ tests started failing
40452         https://bugs.webkit.org/show_bug.cgi?id=98729
40453
40454         Reviewed by Xan Lopez.
40455
40456         Do not try to remove the URL fragment for data URLs. This will likely
40457         just corrupt the URL.
40458
40459         No new tests. This unskips some previously failing tests.
40460
40461         * platform/network/soup/ResourceRequestSoup.cpp:
40462         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40463
40464 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40465
40466         Use tile caches in place of CATiledLayer
40467         https://bugs.webkit.org/show_bug.cgi?id=99806
40468         <rdar://problem/6474145>
40469
40470         Reviewed by Tim Horton.
40471
40472         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40473         layers that exceed the 2000px size threshold.
40474
40475         * platform/graphics/TiledBacking.h:
40476         (TiledBacking): Have normal getter and setter for the visible rect.
40477         * platform/graphics/ca/GraphicsLayerCA.cpp:
40478         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40479         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40480         our current visible rect, which result in no tile area work.
40481         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40482         return the rect, for clarity.
40483         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40484         visible rect, and use the change flags mechanism to ensure that we recompute
40485         tile areas later.
40486         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40487         its own visible rect as the old visible rect.
40488         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40489         oldVisibleRect so that updateVisibleRect() can use this to see how the
40490         visibleRect is changing.
40491         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40492         compares the old and new visible rects, and extends the tile coverage area
40493         in directions where more content is being exposed. It takes care to avoid
40494         "jitter" in the visible rect deltas causing edge tiles to get created then
40495         destroyed by keeping any extra padding that already exists in a direction
40496         where more content is being exposed.
40497         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40498         and use the result to update the TiledBacking's visibleRect.
40499         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40500         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40501         cache layers involve adding an extra layer to the hierarchy (the tile container),
40502         we call updateSublayerList() when changing layer type.
40503         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40504         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40505         size changes.
40506         (WebCore::GraphicsLayerCA::visibleRect):
40507         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40508         * platform/graphics/ca/mac/TileCache.mm:
40509         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40510         * rendering/RenderLayerCompositor.cpp:
40511         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40512         for pages in the page cache, for which the root layer is unattached.
40513         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40514         to setVisibleRect().
40515
40516 2012-10-19  Beth Dakin  <bdakin@apple.com>
40517
40518         https://bugs.webkit.org/show_bug.cgi?id=99768
40519         We should limit the tile cache coverage when a page can't take 
40520         advantage of fast tile scrolling anyway
40521
40522         Reviewed by Simon Fraser.
40523
40524         When sites can't use fast-scrolling, there is no need to inflate the 
40525         tile cache. In fact, we get a performance boost by keeping it small 
40526         on painting-intensive sites. 
40527
40528         Instead of just looking a whether or not the FrameView 
40529         canHaveScrollbar(), consult 
40530         shouldUpdateScrollLayerPositionOnMainThread().
40531         * page/FrameView.cpp:
40532         (WebCore::FrameView::performPostLayoutTasks):
40533         * rendering/RenderLayerBacking.cpp:
40534         (WebCore::RenderLayerBacking::RenderLayerBacking):
40535         
40536         Expose shouldUpdateScrollLayerPositionOnMainThread().
40537         * page/scrolling/ScrollingCoordinator.cpp:
40538         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40539         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40540         (WebCore):
40541         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40542         * page/scrolling/ScrollingCoordinator.h:
40543         (ScrollingCoordinator):
40544
40545         Bug fix. Should be bitwise and.
40546         * platform/graphics/ca/mac/TileCache.mm:
40547         (WebCore::TileCache::tileCoverageRect):
40548
40549 2012-10-19  Mark Lam  <mark.lam@apple.com>
40550
40551         Added WTF::StackStats mechanism.
40552         https://bugs.webkit.org/show_bug.cgi?id=99805.
40553
40554         Reviewed by Geoffrey Garen.
40555
40556         Added StackStats probes in layout methods.
40557
40558         * dom/Document.cpp:
40559         (WebCore::Document::updateLayout):
40560         * rendering/RenderBlock.cpp:
40561         (WebCore::RenderBlock::layout):
40562         * rendering/RenderBox.cpp:
40563         (WebCore::RenderBox::layout):
40564         * rendering/RenderDialog.cpp:
40565         (WebCore::RenderDialog::layout):
40566         * rendering/RenderEmbeddedObject.cpp:
40567         (WebCore::RenderEmbeddedObject::layout):
40568         * rendering/RenderFlowThread.cpp:
40569         (WebCore::RenderFlowThread::layout):
40570         * rendering/RenderFrameSet.cpp:
40571         (WebCore::RenderFrameSet::layout):
40572         * rendering/RenderIFrame.cpp:
40573         (WebCore::RenderIFrame::layout):
40574         * rendering/RenderImage.cpp:
40575         (WebCore::RenderImage::layout):
40576         * rendering/RenderListBox.cpp:
40577         (WebCore::RenderListBox::layout):
40578         * rendering/RenderListItem.cpp:
40579         (WebCore::RenderListItem::layout):
40580         * rendering/RenderListMarker.cpp:
40581         (WebCore::RenderListMarker::layout):
40582         * rendering/RenderMedia.cpp:
40583         (WebCore::RenderMedia::layout):
40584         * rendering/RenderObject.cpp:
40585         (WebCore::RenderObject::layout):
40586         * rendering/RenderObject.h:
40587         * rendering/RenderRegion.cpp:
40588         (WebCore::RenderRegion::layout):
40589         * rendering/RenderReplaced.cpp:
40590         (WebCore::RenderReplaced::layout):
40591         * rendering/RenderReplica.cpp:
40592         (WebCore::RenderReplica::layout):
40593         * rendering/RenderRubyRun.cpp:
40594         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40595         * rendering/RenderScrollbarPart.cpp:
40596         (WebCore::RenderScrollbarPart::layout):
40597         * rendering/RenderSlider.cpp:
40598         (WebCore::RenderSlider::layout):
40599         * rendering/RenderTable.cpp:
40600         (WebCore::RenderTable::layout):
40601         * rendering/RenderTableCell.cpp:
40602         (WebCore::RenderTableCell::layout):
40603         * rendering/RenderTableRow.cpp:
40604         (WebCore::RenderTableRow::layout):
40605         * rendering/RenderTableSection.cpp:
40606         (WebCore::RenderTableSection::layout):
40607         * rendering/RenderTextControlSingleLine.cpp:
40608         (WebCore::RenderTextControlSingleLine::layout):
40609         * rendering/RenderTextTrackCue.cpp:
40610         (WebCore::RenderTextTrackCue::layout):
40611         * rendering/RenderVideo.cpp:
40612         (WebCore::RenderVideo::layout):
40613         * rendering/RenderView.cpp:
40614         (WebCore::RenderView::layout):
40615         * rendering/RenderWidget.cpp:
40616         (WebCore::RenderWidget::layout):
40617         * rendering/svg/RenderSVGContainer.cpp:
40618         (WebCore::RenderSVGContainer::layout):
40619         * rendering/svg/RenderSVGForeignObject.cpp:
40620         (WebCore::RenderSVGForeignObject::layout):
40621         * rendering/svg/RenderSVGGradientStop.cpp:
40622         (WebCore::RenderSVGGradientStop::layout):
40623         * rendering/svg/RenderSVGHiddenContainer.cpp:
40624         (WebCore::RenderSVGHiddenContainer::layout):
40625         * rendering/svg/RenderSVGImage.cpp:
40626         (WebCore::RenderSVGImage::layout):
40627         * rendering/svg/RenderSVGResourceContainer.cpp:
40628         (WebCore::RenderSVGResourceContainer::layout):
40629         * rendering/svg/RenderSVGResourceMarker.cpp:
40630         (WebCore::RenderSVGResourceMarker::layout):
40631         * rendering/svg/RenderSVGRoot.cpp:
40632         (WebCore::RenderSVGRoot::layout):
40633         * rendering/svg/RenderSVGShape.cpp:
40634         (WebCore::RenderSVGShape::layout):
40635         * rendering/svg/RenderSVGText.cpp:
40636         (WebCore::RenderSVGText::layout):
40637
40638 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40639
40640         Web Inspector: merge "docked" state into the "dock side" enum.
40641         https://bugs.webkit.org/show_bug.cgi?id=99717
40642
40643         Reviewed by Vsevolod Vlasov.
40644
40645         Otherwise, it is hard to manage these inter-dependent flags.
40646
40647         * inspector/InspectorFrontendClient.h:
40648         (InspectorFrontendClient):
40649         * inspector/InspectorFrontendClientLocal.cpp:
40650         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40651         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40652         * inspector/InspectorFrontendClientLocal.h:
40653         (InspectorFrontendClientLocal):
40654         * inspector/InspectorFrontendHost.cpp:
40655         (WebCore::InspectorFrontendHost::requestSetDockSide):
40656         * inspector/InspectorFrontendHost.h:
40657         (InspectorFrontendHost):
40658         * inspector/InspectorFrontendHost.idl:
40659         * inspector/front-end/DockController.js:
40660         (WebInspector.DockController):
40661         (WebInspector.DockController.prototype._updateUI.get sides):
40662         (WebInspector.DockController.prototype._updateUI):
40663         (WebInspector.DockController.prototype._toggleDockState):
40664         * inspector/front-end/InspectorFrontendAPI.js:
40665         (InspectorFrontendAPI.setAttachedWindow):
40666         * inspector/front-end/InspectorFrontendHostStub.js:
40667         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40668
40669 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40670
40671         [V8] IndexedDB: Crash when lazy-indexing Date keys
40672         https://bugs.webkit.org/show_bug.cgi?id=99860
40673
40674         Reviewed by Adam Barth.
40675
40676         Missing a scope/context needed when digging values out of Date objects
40677         in an indexing callback.
40678
40679         Test: storage/indexeddb/lazy-index-types.html
40680
40681         * bindings/v8/IDBBindingUtilities.cpp:
40682         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40683
40684 2012-10-18  Dean Jackson  <dino@apple.com>
40685
40686         Shader translator needs option to clamp uniform array accesses in vertex shaders
40687         https://bugs.webkit.org/show_bug.cgi?id=98977
40688         https://code.google.com/p/angleproject/issues/detail?id=49
40689
40690         Reviewed by Alok Priyadarshi and Ken Russell.
40691
40692         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40693         ensure that non-direct array indexing is clamped to the bounds of the array.
40694
40695         Test: fast/canvas/webgl/array-bounds-clamping.html
40696
40697         * platform/graphics/ANGLEWebKitBridge.cpp:
40698         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40699
40700 2012-10-19  Justin Novosad  <junov@chromium.org>
40701
40702         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40703         https://bugs.webkit.org/show_bug.cgi?id=99856
40704
40705         Reviewed by Stephen White.
40706
40707         Marking internal bitmap copy as immutable to prevent it from being
40708         unnecessarily duplicated in skia by SkBitmapHeap.
40709
40710         No new tests: code path already well covered by existing layout tests 
40711         fast/canvas/canvas-pattern-*
40712
40713         * platform/graphics/skia/PatternSkia.cpp:
40714         (WebCore::Pattern::platformPattern):
40715
40716 2012-10-19  Antti Koivisto  <antti@apple.com>
40717
40718         Maintain a list of active CSS stylesheets
40719         https://bugs.webkit.org/show_bug.cgi?id=99843
40720
40721         Reviewed by Andreas Kling.
40722
40723         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40724         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40725         a list of active CSS stylesheets separately simplifies code in number of places.
40726
40727         * css/StyleResolver.cpp:
40728         (WebCore::StyleResolver::StyleResolver):
40729         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40730         (WebCore::StyleResolver::appendAuthorStyleSheets):
40731         (WebCore::collectCSSOMWrappers):
40732         * css/StyleResolver.h:
40733         (StyleResolver):
40734         * css/StyleSheetList.cpp:
40735         (WebCore::StyleSheetList::styleSheets):
40736         (WebCore::StyleSheetList::detachFromDocument):
40737         * dom/Document.cpp:
40738         (WebCore::Document::setCompatibilityMode):
40739         * dom/DocumentStyleSheetCollection.cpp:
40740         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40741         (WebCore::styleSheetsUseRemUnits):
40742         (WebCore::filterEnabledCSSStyleSheets):
40743         (WebCore):
40744         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40745         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40746         * dom/DocumentStyleSheetCollection.h:
40747         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40748         (DocumentStyleSheetCollection):
40749         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40750
40751 2012-09-08  Alpha Lam  <hclam@chromium.org>
40752
40753         [chromium] Implement deferred image decoding
40754         https://bugs.webkit.org/show_bug.cgi?id=94240
40755
40756         Reviewed by Stephen White.
40757
40758         Objectives:
40759
40760         To record image decoding operations during painting and to defer
40761         decoding operations until rasterization.
40762
40763         Rationale:
40764
40765         This is a key feature that enables impl-side painting which requires
40766         fast recording of drawing operations. The existing decode-on-draw
40767         restricts that recording has to block on expensive decoding operations.
40768         This change allows recording of image decoding operations during paint
40769         time.
40770
40771         Design:
40772
40773         Image decoding happens when a BitmapImage is drawn into a
40774         GraphicsContext. When per-tile painting is enabled GraphicsContext
40775         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40776         and image decoding operations to minimize recording time.
40777
40778         An image decoding operation is recorded as a SkPixelRef object
40779         implemented by LazyDecodingPixelRef. This object references raw encoded
40780         data, regions to be decoded and scaling information.
40781
40782         When used in conjunction with per-tile painting this feature defers
40783         image decoding until the SkCanvas referencing the image is rasterized.
40784
40785         Both recording and rasterization happen on the main thread.
40786
40787         Performance Impact:
40788
40789         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40790         and does not have an impact when disabled.
40791
40792         This feature is disabled by default.
40793
40794         Upcoming Changes:
40795
40796         1. Implement a full-featured image cache in ImageDecodingStore.
40797         2. Allow rasterization and decoding on impl thread.
40798
40799         Classes Involved:
40800
40801         BitmapImage
40802
40803         BitmapImage is the entry point for deferred image decoding. When
40804         drawing a BitmapImage into a GraphicsContext it makes a request to
40805         create a NativeImageSkia. We substitute the content in NativeImageSkia
40806         such that it is lazily decoded.
40807
40808         DeferredImageDecoder
40809
40810         This is the platform implementation of a image decoder for Chromium.
40811         This is a bridge layer that either delegates calls to the actual
40812         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40813         to ImageDecodingStore.
40814
40815         ImageDecodingStore
40816
40817         This object manages all encoded images. It keeps track of encoded
40818         data and the corresponding ImageDecoder for doing actual decoding. It
40819         is also responsible for generating lazily decoded SkBitmaps. This
40820         SkBitmap contains a LazyDecodingPixelRef object which references to an
40821         image entry in ImageDecodingStore.
40822
40823         ScaledImageFragment
40824
40825         A container for a scaled image fragment. In addition to bitmap pixels
40826         it contains information about the ID of the image, scale and clipping.
40827
40828         ImageFrameGenerator
40829
40830         This object is responsible for generating decoded pixels. It is also
40831         a container for encoded image data and corresponding image decoder.
40832
40833         LazyDecodingPixelRef
40834
40835         This object is embedded in a SkBitmap to enable lazy decoding. When
40836         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40837         contains information to locate an image and scaling info, these
40838         information is submitted to ImageDecodingStore to access actual pixels.
40839
40840         Layout tests. There are about 80 tests in this virtual test suite
40841         running this feature in this directory:
40842
40843         platform/chromium/virtual/deferred/fast/images
40844
40845         Unit tests. Added DeferredImageDecoderTest to verify deferred
40846         image decoding behavior.
40847
40848         * WebCore.gypi:
40849         * platform/graphics/ImageSource.cpp:
40850         (WebCore::ImageSource::setData):
40851         * platform/graphics/ImageSource.h:
40852         (WebCore):
40853         (ImageSource):
40854         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40855         (WebCore):
40856         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40857         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40858         (WebCore::DeferredImageDecoder::create):
40859         (WebCore::DeferredImageDecoder::createForTesting):
40860         (WebCore::DeferredImageDecoder::filenameExtension):
40861         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40862         (WebCore::DeferredImageDecoder::setData):
40863         (WebCore::DeferredImageDecoder::isSizeAvailable):
40864         (WebCore::DeferredImageDecoder::size):
40865         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40866         (WebCore::DeferredImageDecoder::frameCount):
40867         (WebCore::DeferredImageDecoder::repetitionCount):
40868         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40869         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40870         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40871         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40872         (WebCore):
40873         (DeferredImageDecoder):
40874         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40875         (WebCore::ImageDecodingStore::ImageDecodingStore):
40876         (WebCore):
40877         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40878         (WebCore::ImageDecodingStore::instanceOnMainThread):
40879         (WebCore::ImageDecodingStore::initializeOnMainThread):
40880         (WebCore::ImageDecodingStore::shutdown):
40881         (WebCore::ImageDecodingStore::isLazyDecoded):
40882         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40883         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40884         (WebCore::ImageDecodingStore::setData):
40885         (WebCore::ImageDecodingStore::lockPixels):
40886         (WebCore::ImageDecodingStore::unlockPixels):
40887         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40888         (WebCore::ImageDecodingStore::calledOnValidThread):
40889         (WebCore::ImageDecodingStore::lookupFrameCache):
40890         (WebCore::ImageDecodingStore::deleteFrameCache):
40891         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40892         (WebCore):
40893         (ImageDecodingStore):
40894         (WebCore::ImageDecodingStore::create):
40895         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40896         (WebCore):
40897         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40898         (WebCore::ScaledImageFragment::ScaledImageFragment):
40899         (WebCore::ScaledImageFragment::isEqual):
40900         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40901         (WebCore):
40902         (ScaledImageFragment):
40903         (WebCore::ScaledImageFragment::create):
40904         (WebCore::ScaledImageFragment::bitmap):
40905         (WebCore::ScaledImageFragment::isComplete):
40906         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40907         (WebCore):
40908         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40909         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40910         (WebCore::ImageFrameGenerator::decoder):
40911         (WebCore::ImageFrameGenerator::setData):
40912         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40913         (WebCore):
40914         (ImageFrameGenerator):
40915         (WebCore::ImageFrameGenerator::create):
40916         (WebCore::ImageFrameGenerator::size):
40917         (WebCore::ImageFrameGenerator::imageId):
40918         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40919         (WebCore):
40920         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40921         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40922         (WebCore::LazyDecodingPixelRef::isScaled):
40923         (WebCore::LazyDecodingPixelRef::isClipped):
40924         (WebCore::LazyDecodingPixelRef::onLockPixels):
40925         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40926         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40927         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40928         (WebCore):
40929         (LazyDecodingPixelRef):
40930         (WebCore::LazyDecodingPixelRef::frameGenerator):
40931         * platform/graphics/skia/NativeImageSkia.cpp:
40932         (WebCore::NativeImageSkia::resizedBitmap):
40933         * platform/image-decoders/ImageDecoder.h:
40934         (ImageFrame):
40935         (WebCore::ImageFrame::setSkBitmap):
40936         (WebCore::ImageFrame::getSkBitmap):
40937
40938 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40939
40940         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40941         https://bugs.webkit.org/show_bug.cgi?id=99721
40942
40943         Reviewed by Antonio Gomes.
40944
40945         Initialize GraphicsContext3D::m_renderStyle.
40946
40947         No new tests, no new functionality.
40948
40949         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40950         (WebCore::GraphicsContext3D::GraphicsContext3D):
40951
40952 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40953
40954         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40955         https://bugs.webkit.org/show_bug.cgi?id=99804
40956
40957         Reviewed by Julien Chaffraix.
40958
40959         CSS3 text related properties will be implemented under this flag,
40960         including text decoration, text-align-last, and text-justify.
40961
40962         No new functionality, no new test.
40963
40964         * Configurations/FeatureDefines.xcconfig:
40965         * GNUmakefile.am:
40966         * GNUmakefile.features.am:
40967         * css/CSSComputedStyleDeclaration.cpp:
40968         (WebCore):
40969         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40970         * css/CSSParser.cpp:
40971         (WebCore::CSSParser::parseValue):
40972         (WebCore::CSSParser::addTextDecorationProperty):
40973         (WebCore::CSSParser::parseTextDecoration):
40974         * css/CSSPrimitiveValueMappings.h:
40975         (WebCore):
40976         * css/CSSProperty.cpp:
40977         (WebCore::CSSProperty::isInheritedProperty):
40978         * css/CSSPropertyNames.in:
40979         * css/CSSValueKeywords.in:
40980         * css/StyleBuilder.cpp:
40981         (WebCore::StyleBuilder::StyleBuilder):
40982         * css/StyleResolver.cpp:
40983         (WebCore::StyleResolver::applyProperty):
40984         * rendering/style/RenderStyle.cpp:
40985         (WebCore::RenderStyle::diff):
40986         * rendering/style/RenderStyle.h:
40987         * rendering/style/RenderStyleConstants.h:
40988         (WebCore):
40989         * rendering/style/StyleRareNonInheritedData.cpp:
40990         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
40991         (WebCore::StyleRareNonInheritedData::operator==):
40992         * rendering/style/StyleRareNonInheritedData.h:
40993         (StyleRareNonInheritedData):
40994
40995 2012-10-19  Nate Chapin  <japhet@chromium.org>
40996
40997         Reorder some functions in SubresourceLoader to permit main resources
40998         https://bugs.webkit.org/show_bug.cgi?id=99769
40999
41000         Reviewed by Adam Barth.
41001
41002         Most resource types that go through the memory cache (and therefore
41003         through SubresourceLoader) are not sensitive to the exact ordering of
41004         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
41005         calls.  Main resources are not so lenient.  For main resources to be cacheable
41006         and maintain the current behavior as precisely as possible, we will need to
41007         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
41008
41009         No new tests, refactor only.
41010
41011         * loader/SubresourceLoader.cpp:
41012         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
41013             in the request being canceled, plus calls to CachedResource::willSendRequest() and
41014             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
41015             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
41016             is called, but the calls are out of order for that, so swap those.
41017         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
41018             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
41019             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
41020
41021 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41022
41023         AX: aria-hidden=false does not work as expected
41024         https://bugs.webkit.org/show_bug.cgi?id=98787
41025
41026         Reviewed by Beth Dakin.
41027
41028         ARIA requires that aria-hidden=false override an element's native visibility and include that
41029         node in the AX hierarchy.
41030  
41031         To accomplish this we have to allow invisible items to be included, as well as items that
41032         have no renderers associated with them.
41033
41034         Test: accessibility/aria-hidden-negates-no-visibility.html
41035
41036         * accessibility/AXObjectCache.cpp:
41037         (WebCore::AXObjectCache::getOrCreate):
41038         * accessibility/AccessibilityARIAGrid.cpp:
41039         (WebCore::AccessibilityARIAGrid::addTableCellChild):
41040         (WebCore::AccessibilityARIAGrid::addChildren):
41041         * accessibility/AccessibilityARIAGrid.h:
41042         (AccessibilityARIAGrid):
41043         * accessibility/AccessibilityNodeObject.cpp:
41044         (WebCore):
41045         (WebCore::AccessibilityNodeObject::boundingBoxRect):
41046         (WebCore::AccessibilityNodeObject::insertChild):
41047         (WebCore::AccessibilityNodeObject::addChild):
41048         (WebCore::AccessibilityNodeObject::addChildren):
41049         (WebCore::AccessibilityNodeObject::textUnderElement):
41050         * accessibility/AccessibilityNodeObject.h:
41051         (AccessibilityNodeObject):
41052         * accessibility/AccessibilityObject.cpp:
41053         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
41054         (WebCore):
41055         * accessibility/AccessibilityObject.h:
41056         (AccessibilityObject):
41057         (WebCore::AccessibilityObject::addChild):
41058         (WebCore::AccessibilityObject::insertChild):
41059         * accessibility/AccessibilityRenderObject.cpp:
41060         (WebCore):
41061         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
41062         (WebCore::AccessibilityRenderObject::addHiddenChildren):
41063         (WebCore::AccessibilityRenderObject::addChildren):
41064         * accessibility/AccessibilityRenderObject.h:
41065         (AccessibilityRenderObject):
41066
41067 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41068
41069         MediaStream API: Rename owner to client in MediaStreamDescriptor
41070         https://bugs.webkit.org/show_bug.cgi?id=99593
41071
41072         Reviewed by Adam Barth.
41073
41074         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
41075
41076         No new tests needed, covered by existing tests.
41077
41078         * Modules/mediastream/MediaStream.cpp:
41079         (WebCore::MediaStream::MediaStream):
41080         (WebCore::MediaStream::~MediaStream):
41081         * Modules/mediastream/MediaStream.h:
41082         (MediaStream):
41083         * Modules/mediastream/PeerConnection00.cpp:
41084         (WebCore::PeerConnection00::didRemoveRemoteStream):
41085         * Modules/mediastream/RTCPeerConnection.cpp:
41086         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
41087         * platform/mediastream/MediaStreamCenter.cpp:
41088         (WebCore::MediaStreamCenter::endLocalMediaStream):
41089         (WebCore::MediaStreamCenter::addMediaStreamTrack):
41090         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
41091         * platform/mediastream/MediaStreamDescriptor.h:
41092         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
41093         (WebCore::MediaStreamDescriptor::client):
41094         (WebCore::MediaStreamDescriptor::setClient):
41095         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
41096         (MediaStreamDescriptor):
41097
41098 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41099
41100         Elements assigned to <shadow> should not be reprojected.
41101         https://bugs.webkit.org/show_bug.cgi?id=99680
41102
41103         Reviewed by Dimitri Glazkov.
41104
41105         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41106         reprojected to content. However, we can select them by <shadow>.
41107
41108         Tests: fast/dom/shadow/content-reprojection-complex.html
41109                fast/dom/shadow/content-reprojection-shadow.html
41110                fast/dom/shadow/shadow-reprojection-prohibited.html
41111
41112         * html/shadow/ContentDistributor.cpp:
41113         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41114         to POOL. Instead, <shadow> itself should be added to POOL.
41115         * html/shadow/HTMLContentElement.h:
41116         (WebCore::isHTMLContentElement):
41117         (WebCore):
41118
41119 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41120
41121         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41122         https://bugs.webkit.org/show_bug.cgi?id=96325
41123
41124         Reviewed by Beth Dakin.
41125
41126          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41127          modifies the original findLegend method to take a parameter to determine what should be done.
41128
41129         Test: accessibility/hidden-legend.html
41130
41131         * accessibility/AccessibilityRenderObject.cpp:
41132         (WebCore::AccessibilityRenderObject::titleUIElement):
41133         * rendering/RenderFieldset.cpp:
41134         (WebCore::RenderFieldset::findLegend):
41135         * rendering/RenderFieldset.h:
41136
41137 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41138
41139         AX: Refactor accessibility name computation so it's more platform independent
41140         https://bugs.webkit.org/show_bug.cgi?id=99502
41141
41142         Reviewed by Beth Dakin.
41143
41144         The current model of determining the accessible text for an object has a lot of Mac biases built in
41145         due to legacy implementation. 
41146
41147         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41148         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41149         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41150
41151         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41152         edge cases where we were treating attributes differently based on element type. 
41153
41154         Future patches will resolve those discrepancies.
41155
41156         * accessibility/AccessibilityImageMapLink.cpp:
41157         (WebCore::AccessibilityImageMapLink::accessibilityText):
41158         * accessibility/AccessibilityImageMapLink.h:
41159         (AccessibilityImageMapLink):
41160         * accessibility/AccessibilityMediaControls.cpp:
41161         (WebCore::AccessibilityMediaControl::accessibilityText):
41162         * accessibility/AccessibilityMediaControls.h:
41163         (AccessibilityMediaControl):
41164         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41165         * accessibility/AccessibilityNodeObject.cpp:
41166         (WebCore::AccessibilityNodeObject::titleElementText):
41167         (WebCore::AccessibilityNodeObject::accessibilityText):
41168         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41169         (WebCore::AccessibilityNodeObject::alternativeText):
41170         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41171         (WebCore::AccessibilityNodeObject::visibleText):
41172         (WebCore::AccessibilityNodeObject::helpText):
41173         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41174         * accessibility/AccessibilityNodeObject.h:
41175         (AccessibilityNodeObject):
41176         * accessibility/AccessibilityObject.h:
41177         (AccessibilityText):
41178         (WebCore::AccessibilityText::AccessibilityText):
41179         (WebCore::AccessibilityObject::isMediaControlLabel):
41180         (AccessibilityObject):
41181         (WebCore::AccessibilityObject::accessibilityText):
41182         (WebCore::AccessibilityObject::setAccessibleName):
41183         (WebCore::AccessibilityObject::accessibilityDescription):
41184         (WebCore::AccessibilityObject::title):
41185         (WebCore::AccessibilityObject::helpText):
41186         (WebCore::AccessibilityObject::stringValue):
41187         (WebCore::AccessibilityObject::textUnderElement):
41188         (WebCore::AccessibilityObject::text):
41189         (WebCore::AccessibilityObject::textLength):
41190         (WebCore::AccessibilityObject::setRoleValue):
41191         (WebCore::AccessibilityObject::roleValue):
41192         (WebCore::AccessibilityObject::selection):
41193         (WebCore::AccessibilityObject::hierarchicalLevel):
41194         * accessibility/AccessibilityRenderObject.cpp:
41195         * accessibility/AccessibilityRenderObject.h:
41196         (AccessibilityRenderObject):
41197         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41198         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41199         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41200         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41201         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41202         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41203         * platform/LocalizedStrings.cpp:
41204         (WebCore::localizedMediaControlElementHelpText):
41205
41206 2012-10-19  Kent Tamura  <tkent@chromium.org>
41207
41208         Use Localizer::monthFormat to construct input[type=month] UI
41209         https://bugs.webkit.org/show_bug.cgi?id=99818
41210
41211         Reviewed by Kentaro Hara.
41212
41213         Use an LDML format returned by Localizer::monthFormat for
41214         input[type=month] UI.
41215
41216         Because the format may contain symbolic month names and symbolic
41217         stand-alone month names, we need to add:
41218          - Symbolic/numeric detection in DateTimeEditBuilder
41219          - Normal/stand-alone detection in DateTimeEditBuilder
41220          - Symbolic edit field for months
41221
41222         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41223               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41224
41225         * html/MonthInputType.cpp:
41226         (WebCore::MonthInputType::setupLayoutParameters):
41227         Use Localizer::monthFormat.
41228
41229         * html/shadow/DateTimeEditElement.cpp:
41230         (WebCore::DateTimeEditBuilder::visitField):
41231         - If the number of continuous field character is greater than 2, use
41232         DateTimeSymbolicMonthFieldElement.
41233         - Supports stand-alone month field.
41234
41235         * html/shadow/DateTimeFieldElements.h:
41236         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41237         * html/shadow/DateTimeFieldElements.cpp:
41238         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41239         Added.
41240         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41241         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41242         We need to add 1 because the internal integer representation is 0-based
41243         and DateTimeFieldsState uses 1-based month.
41244         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41245         DateComponents::month is 0-based.
41246         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41247         We need to subtract 1 because the internal integer representation is 0-based
41248         and DateTimeFieldsState uses 1-based month.
41249
41250         * html/shadow/DateTimeSymbolicFieldElement.h:
41251         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41252         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41253
41254 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41255
41256         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41257         https://bugs.webkit.org/show_bug.cgi?id=99519
41258
41259         Reviewed by Alexander Pavlov.
41260
41261         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41262
41263         * inspector/front-end/StylesSourceMapping.js:
41264         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41265         (WebInspector.StyleFile.prototype._styleContentSet):
41266
41267 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41268
41269         Web Inspector: add object-src 'none' to the inspector.html
41270         https://bugs.webkit.org/show_bug.cgi?id=99728
41271
41272         Reviewed by Vsevolod Vlasov.
41273
41274         * inspector/front-end/inspector.html:
41275
41276 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41277
41278         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41279         https://bugs.webkit.org/show_bug.cgi?id=99823
41280
41281         Reviewed by Yury Semikhatsky.
41282
41283         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41284
41285         * inspector/front-end/ResourceScriptMapping.js:
41286         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41287         * inspector/front-end/ScriptSnippetModel.js:
41288         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41289         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41290         * inspector/front-end/ScriptsNavigator.js:
41291         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41292         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41293         * inspector/front-end/ScriptsPanel.js:
41294         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41295         * inspector/front-end/Workspace.js:
41296         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41297
41298 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41299
41300         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41301         https://bugs.webkit.org/show_bug.cgi?id=99729
41302
41303         Reviewed by Vsevolod Vlasov.
41304
41305         Decode only the first line number digit written in a six-character escaped Unicode format.
41306
41307         * inspector/front-end/SASSSourceMapping.js:
41308         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41309         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41310
41311 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41312
41313         MediaStream API: Update the RuntimeEnabledFeatures flags
41314         https://bugs.webkit.org/show_bug.cgi?id=99714
41315
41316         Reviewed by Adam Barth.
41317
41318         Updating the RuntimeEnabledFeatures flags to match reality:
41319         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41320         isDeprecatedPeerConnectionEnabled false.
41321
41322         Patch covered by existing tests.
41323
41324         * bindings/generic/RuntimeEnabledFeatures.cpp:
41325         (WebCore):
41326
41327 2012-10-19  Adam Barth  <abarth@webkit.org>
41328
41329         [V8] Simplify GCPrologueVisitor
41330         https://bugs.webkit.org/show_bug.cgi?id=99819
41331
41332         Reviewed by Kentaro Hara.
41333
41334         Previously, GCPrologueVisitor used a complicated traits-based template
41335         design. That's not necessary. We can just implement it directly without
41336         template magic.
41337
41338         The one subtly here is that MessagePort is not actually a subclass of
41339         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41340         inherit from ActiveDOMObject and remove this special case entirely.
41341
41342         * bindings/v8/V8GCController.cpp:
41343         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41344         (WebCore):
41345         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41346         (WebCore::NodeVisitor::visitDOMWrapper):
41347         (WebCore::V8GCController::gcPrologue):
41348
41349 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41350
41351         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41352         https://bugs.webkit.org/show_bug.cgi?id=99179
41353
41354         Reviewed by Yury Semikhatsky.
41355
41356         Added method "close" to InspectorFrontendHost.
41357         Symantically, this method forces to flush all unsaved buffers for
41358         specified file. In native implementation this turns to be no-op.
41359
41360         In stub implementation "close" causes compilation of blob object an
41361         navigating to blob-schema url.
41362
41363         Removed "canAppend", as appending in now suppurted
41364         by all implementations.
41365
41366         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41367         to avoid out-of-memory errors.
41368
41369         * inspector/InspectorFrontendHost.cpp:
41370         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41371         navigates to blob-object url.
41372         (WebCore):
41373         * inspector/InspectorFrontendHost.h: Added "close" method.
41374         * inspector/InspectorFrontendHost.idl: Ditto.
41375         * inspector/front-end/FileManager.js:
41376         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41377         * inspector/front-end/FileUtils.js:
41378         (WebInspector.FileOutputStream.prototype.close):
41379         Invoke "close" on FileManager.
41380         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41381         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41382         * inspector/front-end/HeapSnapshotView.js:
41383         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41384         * inspector/front-end/InspectorFrontendHostStub.js:
41385         (.WebInspector.InspectorFrontendHostStub):
41386         Added "appendable" behaviour emulation.
41387         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41388         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41389
41390 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41391
41392         AX: labelForElement is slow when there are a lot of DOM elements
41393         https://bugs.webkit.org/show_bug.cgi?id=97825
41394
41395         Reviewed by Ryosuke Niwa.
41396
41397         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41398         quickly map from an id to the label for that id. This speeds up
41399         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41400         when accessibility was on.
41401
41402         Tests: accessibility/title-ui-element-correctness.html
41403                perf/accessibility-title-ui-element.html
41404
41405         * accessibility/AccessibilityNodeObject.cpp:
41406         (WebCore::AccessibilityNodeObject::labelForElement):
41407         * dom/DocumentOrderedMap.cpp:
41408         (WebCore::keyMatchesLabelForAttribute):
41409         (WebCore):
41410         (WebCore::DocumentOrderedMap::get):
41411         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41412         * dom/DocumentOrderedMap.h:
41413         (DocumentOrderedMap):
41414         * dom/Element.cpp:
41415         (WebCore::Element::insertedInto):
41416         (WebCore::Element::removedFrom):
41417         (WebCore::Element::updateLabel):
41418         (WebCore):
41419         (WebCore::Element::willModifyAttribute):
41420         * dom/Element.h:
41421         (Element):
41422         * dom/TreeScope.cpp:
41423         (WebCore::TreeScope::TreeScope):
41424         (WebCore::TreeScope::destroyTreeScopeData):
41425         (WebCore::TreeScope::addLabel):
41426         (WebCore):
41427         (WebCore::TreeScope::removeLabel):
41428         (WebCore::TreeScope::labelElementForId):
41429         * dom/TreeScope.h:
41430         (WebCore):
41431         (TreeScope):
41432         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41433
41434 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41435
41436         Web Inspector: Update localizedStrings.js
41437         https://bugs.webkit.org/show_bug.cgi?id=99701
41438
41439         Reviewed by Yury Semikhatsky.
41440
41441         Fixed most of missing strings and orphans.
41442
41443         * English.lproj/localizedStrings.js:
41444         * inspector/front-end/SettingsScreen.js:
41445
41446 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41447
41448         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41449         https://bugs.webkit.org/show_bug.cgi?id=99457
41450
41451         Reviewed by Yury Semikhatsky.
41452
41453         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41454         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41455
41456         * inspector/InspectorClient.h:
41457         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41458         * inspector/InspectorMemoryAgent.cpp:
41459         (WebCore::reportJSHeapInfo):
41460         (WebCore::reportRenderTreeInfo):
41461         (WebCore):
41462         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41463         * inspector/MemoryInstrumentationImpl.cpp:
41464         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41465         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41466         * inspector/MemoryInstrumentationImpl.h:
41467         (MemoryInstrumentationClientImpl):
41468         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41469
41470 2012-10-19  Adam Barth  <abarth@webkit.org>
41471
41472         [V8] DOMObjectVisitor does nothing
41473         https://bugs.webkit.org/show_bug.cgi?id=99812
41474
41475         Reviewed by Kentaro Hara.
41476
41477         This code doesn't do anything, even in Debug! We should just remove it.
41478
41479         * bindings/v8/V8GCController.cpp:
41480         (WebCore):
41481         (WebCore::V8GCController::gcPrologue):
41482         (WebCore::V8GCController::gcEpilogue):
41483
41484 2012-10-19  Adam Barth  <abarth@webkit.org>
41485
41486         [V8] Remove unused typedef from V8GCController.cpp
41487         https://bugs.webkit.org/show_bug.cgi?id=99808
41488
41489         Reviewed by Kentaro Hara.
41490
41491         This typedef is not used.
41492
41493         * bindings/v8/V8GCController.cpp:
41494
41495 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41496
41497         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41498         https://bugs.webkit.org/show_bug.cgi?id=99720
41499
41500         Reviewed by Yury Semikhatsky.
41501
41502         Non-inherited properties are now disregarded in inherited styles.
41503
41504         * inspector/front-end/StylesSidebarPane.js:
41505         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41506         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41507
41508 2012-10-18  Adam Barth  <abarth@webkit.org>
41509
41510         [V8] GrouperVisitor is secretly two entirely separate objects
41511         https://bugs.webkit.org/show_bug.cgi?id=99810
41512
41513         Reviewed by Kentaro Hara.
41514
41515         We can separate out the two things that GrouperVisitor is trying to do
41516         because they have nothing to do with each other.
41517
41518         * bindings/v8/V8GCController.cpp:
41519         (ObjectVisitor):
41520         (WebCore::ObjectVisitor::visitDOMWrapper):
41521         (WebCore):
41522         (WebCore::V8GCController::gcPrologue):
41523
41524 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41525
41526         Automatically start plugins created within a user gesture, skipping snapshotting
41527         https://bugs.webkit.org/show_bug.cgi?id=99778
41528
41529         Reviewed by Alexey Proskuryakov.
41530
41531         If a user gesture is being processed, do not set the display state of
41532         HTMLPluginImageElement to WaitingForSnapshot.
41533
41534         No new tests, since it only affects when plugins switch from snapshot to running
41535         state.  Does not affect rendering of other elements.
41536
41537         * html/HTMLPlugInImageElement.cpp:
41538         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41539
41540 2012-10-18  Kent Tamura  <tkent@chromium.org>
41541
41542         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41543         https://bugs.webkit.org/show_bug.cgi?id=99787
41544
41545         Reviewed by Kentaro Hara.
41546
41547         This is going to be used for input[type=month] UI. This doesn't affect
41548         any bahevior yet.
41549
41550         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41551         layout tests later.
41552
41553         * platform/text/Localizer.h:
41554         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41555         virtual member functions.
41556
41557         * platform/text/LocaleICU.h:
41558         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41559         * platform/text/LocaleICU.cpp:
41560         (WebCore::LocaleICU::shortMonthLabels): Added.
41561         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41562
41563         * platform/text/LocaleNone.cpp:
41564         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41565         (WebCore::LocaleNone::shortMonthLabels):
41566         Added. Always returns English labels.
41567         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41568         Addes. Just calls shortMonthLabels.
41569
41570         * platform/text/LocaleWin.h:
41571         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41572         * platform/text/LocaleWin.cpp:
41573         (WebCore::LocaleWin::shortMonthLabels): Added.
41574         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41575         Added. Always returns shortMonthLabels.
41576
41577         * platform/text/mac/LocaleMac.h:
41578         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41579         * platform/text/mac/LocaleMac.mm:
41580         (WebCore::LocaleMac::shortMonthLabels): Added.
41581         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41582
41583 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41584
41585         Implement value sanitization algorithm for type=datetime
41586         https://bugs.webkit.org/show_bug.cgi?id=76893
41587
41588         Reviewed by Kent Tamura.
41589
41590         Implement the value sanitization algorithm for type=datetime that adjusts
41591         the value to a valid normalized forced-UTC global date and time string.
41592         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41593
41594         Test: fast/forms/datetime/datetime-value-sanitization.html
41595
41596         * html/DateTimeInputType.cpp:
41597         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41598         (WebCore):
41599         * html/DateTimeInputType.h:
41600         (DateTimeInputType): Add sanitizeValue.
41601         * platform/DateComponents.cpp:
41602         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41603         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41604
41605 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41606
41607         Fix build warning.
41608         https://bugs.webkit.org/show_bug.cgi?id=99788
41609
41610         Reviewed by Kentaro Hara.
41611
41612         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41613
41614         * rendering/RenderLayer.cpp:
41615         (WebCore::RenderLayer::currentTransform):
41616
41617 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41618
41619         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41620         https://bugs.webkit.org/show_bug.cgi?id=99771
41621
41622         Reviewed by Anders Carlsson.
41623
41624         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41625         to the general section.
41626
41627 2012-10-18  Adam Barth  <abarth@webkit.org>
41628
41629         [V8] fast/dom/gc-9.html fails for document.styleSheets
41630         https://bugs.webkit.org/show_bug.cgi?id=99786
41631
41632         Reviewed by Kentaro Hara.
41633
41634         V8 needs to know about this IDL attribute as well.
41635
41636         * css/StyleSheetList.idl:
41637
41638 2012-10-18  Adam Barth  <abarth@webkit.org>
41639
41640         [V8] fast/dom/gc-9.html fails for document.implementation
41641         https://bugs.webkit.org/show_bug.cgi?id=99783
41642
41643         Reviewed by Kentaro Hara.
41644
41645         In order to correctly manage the lifetime of document.implementation,
41646         we need to implement GenerateIsReachable=ImplDocument.
41647
41648         * bindings/scripts/CodeGeneratorV8.pm:
41649         (GenerateVisitDOMWrapper):
41650         * bindings/scripts/IDLAttributes.txt:
41651         * dom/DOMImplementation.idl:
41652
41653 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41654
41655         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41656         https://bugs.webkit.org/show_bug.cgi?id=96443
41657
41658         Reviewed by Beth Dakin.
41659
41660         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41661         to determine which line this crash is happening on.
41662
41663         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41664         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41665
41666 2012-10-18  Alec Flett  <alecflett@chromium.org>
41667
41668         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41669         https://bugs.webkit.org/show_bug.cgi?id=99773
41670
41671         Reviewed by Tony Chang.
41672
41673         Refactor to begin separating out metadata from stateful backend objects,
41674         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41675
41676         Also includes some #include dependency cleanup so that the backing store
41677         depends less on the stateful backend objects.
41678
41679         No new tests as this is purely a refactor.
41680
41681         * Modules/indexeddb/IDBBackingStore.h:
41682         (WebCore):
41683         (IDBBackingStore):
41684         * Modules/indexeddb/IDBCursor.h:
41685         * Modules/indexeddb/IDBCursorBackendImpl.h:
41686         (WebCore):
41687         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41688         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41689         (WebCore::IDBDatabaseBackendImpl::openInternal):
41690         (WebCore::IDBDatabaseBackendImpl::metadata):
41691         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41692         (WebCore::IDBDatabaseBackendImpl::setVersion):
41693         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41694         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41695         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41696         (WebCore::IDBDatabaseBackendImpl::openConnection):
41697         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41698         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41699         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41700         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41701         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41702         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41703         (WebCore::IDBDatabaseBackendImpl::id):
41704         (IDBDatabaseBackendImpl):
41705         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41706         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41707         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41708         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41709         (IDBLevelDBBackingStore):
41710         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41711         * Modules/indexeddb/IDBTransaction.h:
41712         (WebCore):
41713
41714 2012-10-18  Peter Kasting  <pkasting@google.com>
41715
41716         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41717         https://bugs.webkit.org/show_bug.cgi?id=99781
41718
41719         Reviewed by Adam Barth.
41720
41721         No tests, since the actual effects of this bug are fickle and it's not
41722         clear how to extract and check particular subframes of an animated GIF.
41723
41724         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41725         (WebCore::ImageFrame::copyBitmapData):
41726
41727 2012-10-18  Pan Deng  <pan.deng@intel.com>
41728
41729         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41730         https://bugs.webkit.org/show_bug.cgi?id=84885.
41731
41732         Reviewed by Tony Gentilcore.
41733
41734         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41735         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. 
41736
41737         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41738                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41739                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41740                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41741                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41742                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41743
41744         * page/Performance.cpp:
41745         (WebCore):
41746         (WebCore::Performance::Performance):
41747         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41748         (WebCore::Performance::addResourceTiming):
41749         (WebCore::Performance::isResourceTimingBufferFull):
41750         * page/Performance.h:
41751         (Performance):
41752
41753 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41754
41755         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41756         https://bugs.webkit.org/show_bug.cgi?id=99663
41757
41758         Reviewed by Enrica Casucci and Levi Weintraub.
41759
41760         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41761         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41762         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41763         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41764         the length after t2 is merged.
41765
41766         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41767         Also use the right offset.
41768
41769         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41770
41771         * editing/ReplaceSelectionCommand.cpp:
41772         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41773
41774 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41775
41776         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41777         https://bugs.webkit.org/show_bug.cgi?id=82882
41778
41779         Reviewed by Xan Lopez.
41780
41781         Based on a patch by Milan Crha <mcrha@redhat.com>
41782
41783         Prevent an invalid access to a pointer while clearing the DOM
41784         object cache.
41785         * bindings/gobject/DOMObjectCache.cpp:
41786         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41787
41788 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41789
41790         Unreviewed, rolling out r131810.
41791         http://trac.webkit.org/changeset/131810
41792         https://bugs.webkit.org/show_bug.cgi?id=99762
41793
41794         Broke linux debug webkit_unit_tests (Requested by
41795         danakj|gardening on #webkit).
41796
41797         * WebCore.gypi:
41798         * platform/graphics/ImageSource.cpp:
41799         (WebCore::ImageSource::setData):
41800         * platform/graphics/ImageSource.h:
41801         (WebCore):
41802         (ImageSource):
41803         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41804         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41805         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41806         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41807         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41808         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41809         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41810         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41811         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41812         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41813         * platform/graphics/skia/NativeImageSkia.cpp:
41814         (WebCore::NativeImageSkia::resizedBitmap):
41815         * platform/image-decoders/ImageDecoder.h:
41816         (ImageFrame):
41817
41818 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41819
41820         MediaStream API: Do some cleanup in the chromium WebKit API
41821         https://bugs.webkit.org/show_bug.cgi?id=99713
41822
41823         Reviewed by Adam Barth.
41824
41825         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41826
41827         No testing needed since only an unused function is removed.
41828
41829         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41830
41831 2012-10-18  Alpha Lam  <hclam@chromium.org>
41832
41833         [chromium] Implement deferred image decoding
41834         https://bugs.webkit.org/show_bug.cgi?id=94240
41835
41836         Reviewed by Stephen White.
41837
41838         Objectives:
41839
41840         To record image decoding operations during painting and to defer
41841         decoding operations until rasterization.
41842
41843         Rationale:
41844
41845         This is a key feature that enables impl-side painting which requires
41846         fast recording of drawing operations. The existing decode-on-draw
41847         restricts that recording has to block on expensive decoding operations.
41848         This change allows recording of image decoding operations during paint
41849         time.
41850
41851         Design:
41852
41853         Image decoding happens when a BitmapImage is drawn into a
41854         GraphicsContext. When per-tile painting is enabled GraphicsContext
41855         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41856         and image decoding operations to minimize recording time.
41857
41858         An image decoding operation is recorded as a SkPixelRef object
41859         implemented by LazyDecodingPixelRef. This object references raw encoded
41860         data, regions to be decoded and scaling information.
41861
41862         When used in conjunction with per-tile painting this feature defers
41863         image decoding until the SkCanvas referencing the image is rasterized.
41864
41865         Both recording and rasterization happen on the main thread.
41866
41867         Performance Impact:
41868
41869         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41870         and does not have an impact when disabled.
41871
41872         This feature is disabled by default.
41873
41874         Upcoming Changes:
41875
41876         1. Implement a full-featured image cache in ImageDecodingStore.
41877         2. Allow rasterization and decoding on impl thread.
41878
41879         Classes Involved:
41880
41881         BitmapImage
41882
41883         BitmapImage is the entry point for deferred image decoding. When
41884         drawing a BitmapImage into a GraphicsContext it makes a request to
41885         create a NativeImageSkia. We substitute the content in NativeImageSkia
41886         such that it is lazily decoded.
41887
41888         DeferredImageDecoder
41889
41890         This is the platform implementation of a image decoder for Chromium.
41891         This is a bridge layer that either delegates calls to the actual
41892         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41893         to ImageDecodingStore.
41894
41895         ImageDecodingStore
41896
41897         This object manages all encoded images. It keeps track of encoded
41898         data and the corresponding ImageDecoder for doing actual decoding. It
41899         is also responsible for generating lazily decoded SkBitmaps. This
41900         SkBitmap contains a LazyDecodingPixelRef object which references to an
41901         image entry in ImageDecodingStore.
41902
41903         ScaledImageFragment
41904
41905         A container for a scaled image fragment. In addition to bitmap pixels
41906         it contains information about the ID of the image, scale and clipping.
41907
41908         ImageFrameGenerator
41909
41910         This object is responsible for generating decoded pixels. It is also
41911         a container for encoded image data and corresponding image decoder.
41912
41913         LazyDecodingPixelRef
41914
41915         This object is embedded in a SkBitmap to enable lazy decoding. When
41916         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41917         contains information to locate an image and scaling info, these
41918         information is submitted to ImageDecodingStore to access actual pixels.
41919
41920         Layout tests. There are about 80 tests in this virtual test suite
41921         running this feature in this directory:
41922
41923         platform/chromium/virtual/deferred/fast/images
41924
41925         Unit tests. Added DeferredImageDecoderTest to verify deferred
41926         image decoding behavior.
41927
41928         * WebCore.gypi:
41929         * platform/graphics/ImageSource.cpp:
41930         (WebCore::ImageSource::setData):
41931         * platform/graphics/ImageSource.h:
41932         (WebCore):
41933         (ImageSource):
41934         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41935         (WebCore):
41936         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41937         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41938         (WebCore::DeferredImageDecoder::create):
41939         (WebCore::DeferredImageDecoder::createForTesting):
41940         (WebCore::DeferredImageDecoder::filenameExtension):
41941         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41942         (WebCore::DeferredImageDecoder::setData):
41943         (WebCore::DeferredImageDecoder::isSizeAvailable):
41944         (WebCore::DeferredImageDecoder::size):
41945         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41946         (WebCore::DeferredImageDecoder::frameCount):
41947         (WebCore::DeferredImageDecoder::repetitionCount):
41948         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41949         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41950         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41951         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41952         (WebCore):
41953         (DeferredImageDecoder):
41954         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41955         (WebCore::ImageDecodingStore::ImageDecodingStore):
41956         (WebCore):
41957         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41958         (WebCore::ImageDecodingStore::instanceOnMainThread):
41959         (WebCore::ImageDecodingStore::initializeOnMainThread):
41960         (WebCore::ImageDecodingStore::shutdown):
41961         (WebCore::ImageDecodingStore::isLazyDecoded):
41962         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
41963         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
41964         (WebCore::ImageDecodingStore::setData):
41965         (WebCore::ImageDecodingStore::lockPixels):
41966         (WebCore::ImageDecodingStore::unlockPixels):
41967         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
41968         (WebCore::ImageDecodingStore::calledOnValidThread):
41969         (WebCore::ImageDecodingStore::lookupFrameCache):
41970         (WebCore::ImageDecodingStore::deleteFrameCache):
41971         * platform/graphics/chromium/ImageDecodingStore.h: Added.
41972         (WebCore):
41973         (ImageDecodingStore):
41974         (WebCore::ImageDecodingStore::create):
41975         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
41976         (WebCore):
41977         (WebCore::ScaledImageFragment::~ScaledImageFragment):
41978         (WebCore::ScaledImageFragment::ScaledImageFragment):
41979         (WebCore::ScaledImageFragment::isEqual):
41980         * platform/graphics/chromium/ScaledImageFragment.h: Added.
41981         (WebCore):
41982         (ScaledImageFragment):
41983         (WebCore::ScaledImageFragment::create):
41984         (WebCore::ScaledImageFragment::bitmap):
41985         (WebCore::ScaledImageFragment::isComplete):
41986         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
41987         (WebCore):
41988         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
41989         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
41990         (WebCore::ImageFrameGenerator::decoder):
41991         (WebCore::ImageFrameGenerator::setData):
41992         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
41993         (WebCore):
41994         (ImageFrameGenerator):
41995         (WebCore::ImageFrameGenerator::create):
41996         (WebCore::ImageFrameGenerator::size):
41997         (WebCore::ImageFrameGenerator::imageId):
41998         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
41999         (WebCore):
42000         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
42001         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
42002         (WebCore::LazyDecodingPixelRef::isScaled):
42003         (WebCore::LazyDecodingPixelRef::isClipped):
42004         (WebCore::LazyDecodingPixelRef::onLockPixels):
42005         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
42006         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
42007         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
42008         (WebCore):
42009         (LazyDecodingPixelRef):
42010         (WebCore::LazyDecodingPixelRef::frameGenerator):
42011         * platform/graphics/skia/NativeImageSkia.cpp:
42012         (WebCore::NativeImageSkia::resizedBitmap):
42013         * platform/image-decoders/ImageDecoder.h:
42014         (ImageFrame):
42015         (WebCore::ImageFrame::setSkBitmap):
42016         (WebCore::ImageFrame::getSkBitmap):
42017
42018 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42019
42020         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42021         https://bugs.webkit.org/show_bug.cgi?id=99721
42022
42023         Reviewed by Antonio Gomes.
42024
42025         Initialize GraphicsContext3D::m_renderStyle.
42026
42027         No new tests, no new functionality.
42028
42029         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42030         (WebCore::GraphicsContext3D::GraphicsContext3D):
42031
42032 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
42033
42034         [CSS Shaders] Validate types of built-in vertex attributes
42035         https://bugs.webkit.org/show_bug.cgi?id=98972
42036
42037         Reviewed by Dean Jackson.
42038
42039         Reject custom filters in which the author defined built-in attributes with the wrong type.
42040         For example, the GLSL declaration "attribute float a_position" is incorrect because
42041         a_position should be a vec4, not a float.
42042
42043         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
42044
42045         * platform/graphics/ANGLEWebKitBridge.h:
42046         (WebCore::ANGLEShaderSymbol::isSampler):
42047             Add const qualifier to isSampler method.
42048         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
42049         (WebCore):
42050         (WebCore::builtInAttributeNameToTypeMap):
42051             New file static function. Returns a map of the CSS Custom Filters built-in attribute
42052             names and their expected types.
42053         (WebCore::validateSymbols):
42054             New file static function. Loop through all of the symbols. Reject the shader if we find
42055             a built-in attribute defined with the wrong type.
42056         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
42057             Call the new validateSymbols function. If it returns false, exit the constructor early,
42058             which rejects the program.
42059             Move the loop that checks if any uniform is a sampler into the the validateSymbols
42060             function.
42061
42062 2012-10-18  Mike Reed  <reed@google.com>
42063
42064         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
42065         https://bugs.webkit.org/show_bug.cgi?id=99752
42066
42067         Reviewed by Stephen White.
42068
42069         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
42070         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
42071         crash later on).
42072         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
42073         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
42074
42075         No new tests. Existing tests exercise ImageBuffer constructor.
42076
42077         * platform/graphics/skia/ImageBufferSkia.cpp:
42078         (WebCore::createNonPlatformCanvas):
42079
42080 2012-10-18  Beth Dakin  <bdakin@apple.com>
42081
42082         https://bugs.webkit.org/show_bug.cgi?id=99668
42083         REGRESSION: Crash in 
42084         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
42085         -and corresponding-
42086         <rdar://problem/12491901>
42087
42088         Reviewed by Simon Fraser.
42089
42090         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
42091         ScrollingStateTree's rootStateNode. Before that patch, the root state 
42092         node was never destroyed. It was just constantly re-used for 
42093         different RenderLayerBackings. This crash is just one of a few bugs 
42094         that has occurred because of that change. I have fixed the other bugs 
42095         individually, but I think that long-term, it is the safest solution 
42096         to go back to the original ownership model.
42097
42098         So this patch ensures that the state tree will always have a root 
42099         state node. Instead of destroying and re-creating the root node when 
42100         it's scroll ID changes, we just update the ID.
42101
42102         attachToStateTree() now takes an additional ID representing the ID of 
42103         the parent node.
42104         * page/scrolling/ScrollingCoordinator.h:
42105         (WebCore::ScrollingCoordinator::attachToStateTree):
42106
42107         Add a way to set the scrolling node ID.
42108         * page/scrolling/ScrollingStateNode.h:
42109         (WebCore::ScrollingStateNode::setScrollingNodeID):
42110
42111         This code that provided a way to mark all properties as having 
42112         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42113         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42114         and re-created the rootStateNode. Now that we are no longer 
42115         destroying and re-creating the rootStateNode, this code is no longer 
42116         necessary.
42117         * page/scrolling/ScrollingStateScrollingNode.cpp:
42118         * page/scrolling/ScrollingStateScrollingNode.h:
42119
42120         create m_rootStateNode right in the ScrollingStateTree's constructor.
42121         * page/scrolling/ScrollingStateTree.cpp:
42122         (WebCore::ScrollingStateTree::ScrollingStateTree):
42123
42124         Don't let removeNode() destroy m_rootStateNode.
42125         (WebCore::ScrollingStateTree::removeNode):
42126
42127         Also a part of r130989 that is no longer needed.
42128         (WebCore::ScrollingStateTree::rootLayerDidChange():
42129         * page/scrolling/ScrollingStateTree.h:
42130         (WebCore::ScrollingStateTree::rootStateNode):
42131         (ScrollingStateTree):
42132         (WebCore::ScrollingStateTree::setRootStateNode):
42133
42134         attachToStateTree() now takes an additional ID representing the ID of 
42135         the parent node.
42136         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42137         (ScrollingCoordinatorMac):
42138
42139         We no longer need ScrollingStateTree::rootLayerDidChange()
42140         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42141         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42142
42143         Do not destroy and re-create the state node. Just update its ID. When 
42144         we support child nodes soon, we will create them in this function.
42145         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42146
42147         No need to null-check the rootStateNode.
42148         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42149
42150         Send 0 as the parent node ID to attachToStateTree() to represent the 
42151         root node.
42152         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42153         * rendering/RenderLayerBacking.cpp:
42154
42155         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42156         layer.
42157         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42158         * rendering/RenderLayerBacking.h:
42159         (RenderLayerBacking):
42160
42161         Since this is the root, send 0 to represent the parent layer.
42162         * rendering/RenderLayerCompositor.cpp:
42163         (WebCore::RenderLayerCompositor::updateBacking):
42164
42165 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42166
42167         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42168         https://bugs.webkit.org/show_bug.cgi?id=99721
42169
42170         Reviewed by Antonio Gomes.
42171
42172         Initialize GraphicsContext3D::m_renderStyle.
42173
42174         No new tests, no new functionality.
42175
42176         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42177         (WebCore::GraphicsContext3D::GraphicsContext3D):
42178
42179 2012-10-18  Brian White  <bcwhite@chromium.org>
42180
42181         WebKit Doesn't Recognize Content-Language HTTP Header
42182         https://bugs.webkit.org/show_bug.cgi?id=97929
42183
42184         Reviewed by Alexey Proskuryakov.
42185
42186         The HTTP "Content-Language" header may be present and include the
42187         language of the page contents (as opposed to an embedded meta tag).
42188
42189         * loader/FrameLoader.cpp:
42190         (WebCore::FrameLoader::didBeginDocument):
42191
42192 2012-10-18  Jer Noble  <jer.noble@apple.com>
42193
42194         Crash in WebCore::Document::webkitExitFullscreen + 618
42195         https://bugs.webkit.org/show_bug.cgi?id=99496
42196
42197         Reviewed by Eric Carlson.
42198
42199         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42200
42201         * dom/Document.cpp:
42202         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42203
42204 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42205
42206         Implement css3-conditional's @supports rule
42207         https://bugs.webkit.org/show_bug.cgi?id=86146
42208
42209         Reviewed by Antti Koivisto.
42210
42211         The "@supports" rule is a conditional group rule whose condition tests
42212         whether the user agent supports CSS property:value pairs.
42213
42214         http://dev.w3.org/csswg/css3-conditional/#at-supports
42215
42216         Test: css3/supports.html
42217
42218         * Configurations/FeatureDefines.xcconfig:
42219         * GNUmakefile.am:
42220         * GNUmakefile.features.am:
42221             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42222
42223         * css/CSSGrammar.y.in:
42224         * css/CSSParser.cpp:
42225         (WebCore):
42226         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42227         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42228         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42229         * css/CSSParser.h: Added new SupportsMode parsing mode.
42230         (CSSParser):
42231
42232 2012-10-18  Marja Hölttä  <marja@chromium.org>
42233
42234         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42235         https://bugs.webkit.org/show_bug.cgi?id=99730
42236
42237         Reviewed by Jochen Eisinger.
42238
42239         * loader/cache/CachedResourceLoader.cpp:
42240         (WebCore::CachedResourceLoader::requestSVGDocument):
42241
42242 2012-10-18  Jer Noble  <jer.noble@apple.com>
42243
42244         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42245         https://bugs.webkit.org/show_bug.cgi?id=99610
42246
42247         Reviewed by Eric Carlson.
42248
42249         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42250         store the cumulative drag offset and accumulate during each additional drag.
42251
42252         No new tests; modified the fullscreen/video-controls-drag.html test.
42253
42254         * html/shadow/MediaControlElements.cpp:
42255         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42256         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42257         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42258         * html/shadow/MediaControlElements.h:
42259
42260 2012-10-18  Brandon Jones  <bajones@google.com>
42261
42262         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42263         https://bugs.webkit.org/show_bug.cgi?id=97400
42264
42265         Reviewed by Kenneth Russell.
42266
42267         Implemented OES_element_index_uint WebGL extension
42268
42269         Test: fast/canvas/webgl/oes-element-index-uint.html
42270
42271         * CMakeLists.txt:
42272         * DerivedSources.make:
42273         * DerivedSources.pri:
42274         * GNUmakefile.list.am:
42275         * Target.pri:
42276         * WebCore.gypi:
42277         * WebCore.xcodeproj/project.pbxproj:
42278         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42279         (WebCore::toJS):
42280         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42281         (WebCore::toV8Object):
42282         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42283         (WebCore):
42284         (WebCore::OESElementIndexUint::OESElementIndexUint):
42285         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42286         (WebCore::OESElementIndexUint::getName):
42287         (WebCore::OESElementIndexUint::create):
42288         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42289         (WebCore):
42290         (OESElementIndexUint):
42291         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42292         * html/canvas/WebGLExtension.h:
42293         * html/canvas/WebGLRenderingContext.cpp:
42294         (WebCore):
42295         (WebCore::WebGLRenderingContext::validateElementArraySize):
42296         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42297         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42298         (WebCore::WebGLRenderingContext::validateRenderingState):
42299         (WebCore::WebGLRenderingContext::drawElements):
42300         (WebCore::WebGLRenderingContext::getExtension):
42301         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42302         * html/canvas/WebGLRenderingContext.h:
42303         (WebCore):
42304         (WebGLRenderingContext):
42305         * platform/graphics/Extensions3D.h:
42306         (Extensions3D):
42307         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42308         (WebCore::Extensions3DOpenGL::supportsExtension):
42309
42310 2012-10-18  Jer Noble  <jer.noble@apple.com>
42311
42312         Add diagnostic logging to track per-page media engine usage.
42313         https://bugs.webkit.org/show_bug.cgi?id=99615
42314         <rdar://problem/12476473>
42315
42316         Reviewed by Eric Carlson.
42317
42318         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42319
42320         * html/HTMLMediaElement.cpp:
42321         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42322         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42323         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42324         * loader/FrameLoader.cpp:
42325         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42326
42327         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42328         * page/Page.cpp:
42329         (WebCore::Page::hasSeenAnyMediaEngine):
42330         (WebCore::Page::hasSeenMediaEngine):
42331         (WebCore::Page::sawMediaEngine):
42332         (WebCore::Page::resetSeenMediaEngines):
42333         * page/Page.h:
42334
42335         Add new static logging key definitions:
42336         * page/DiagnosticLoggingKeys.cpp:
42337         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42338         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42339         * page/DiagnosticLoggingKeys.h:
42340
42341 2012-10-18  Michael Saboff  <msaboff@apple.com>
42342
42343         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42344         https://bugs.webkit.org/show_bug.cgi?id=99731
42345
42346         Reviewed by Dan Bernstein.
42347
42348         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42349         approriate character pointer type.
42350
42351         No tests needed, change covered by existing tests.
42352
42353         * rendering/RenderBlockLineLayout.cpp:
42354         (WebCore::findFirstTrailingSpace):
42355         (WebCore::RenderBlock::handleTrailingSpaces):
42356
42357 2012-10-18  Hans Muller  <hmuller@adobe.com>
42358
42359         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42360         https://bugs.webkit.org/show_bug.cgi?id=99216
42361
42362         Reviewed by Dirk Schulze.
42363
42364         Added a FloatRect::extend() method which simplifies writing loops that
42365         accumulate the bounding box for a sequence of FloatPoints. The new method
42366         is used by ExclusionPolygon to initialize the shape's logical and physical
42367         bounding boxes. This a clean-up, not a change in functionality. It's already
42368         covered by the existing fast/exclusions LayoutTests.
42369
42370         * platform/graphics/FloatRect.cpp:
42371         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42372         (WebCore):
42373         * platform/graphics/FloatRect.h:
42374         (FloatRect): Added extend() method.
42375         * rendering/ExclusionPolygon.cpp:
42376         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42377         * rendering/ExclusionShape.cpp:
42378         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42379         * rendering/ExclusionShape.h:
42380         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42381         (ExclusionShape):
42382
42383 2012-10-18  Hans Muller  <hmuller@adobe.com>
42384
42385         [CSS Exclusions] Handle special case "empty" shapes
42386         https://bugs.webkit.org/show_bug.cgi?id=99342
42387
42388         Reviewed by Dirk Schulze.
42389
42390         Provide expclit coverage of the simple "empty" shape-inside shapes.
42391         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42392         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42393         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42394         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42395
42396         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42397
42398         * rendering/ExclusionPolygon.cpp:
42399         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42400         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42401         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42402         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42403         * rendering/ExclusionRectangle.cpp:
42404         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42405         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42406         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42407         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42408         (ExclusionShape):
42409
42410 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42411
42412         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42413         https://bugs.webkit.org/show_bug.cgi?id=99587
42414
42415         Reviewed by Dimitri Glazkov.
42416
42417         Since contents in datalist are not shown, summary in datalist is not
42418         shown either. So the summary has no render style. On the other hand,
42419         the summary is implemented by shadow DOM and it has some insertion
42420         point. Its child, e.g. title in the below test, is distributed.
42421         To solve the child's user-modify, looking at shadow host(=summary)'s
42422         style causes null-pointer crash.
42423
42424         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42425
42426         * css/StyleResolver.cpp:
42427         (WebCore::StyleResolver::styleForElement):
42428         Added a code to check whether the shadow host has any style or not.
42429
42430 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42431
42432         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42433         https://bugs.webkit.org/show_bug.cgi?id=99601
42434
42435         Reviewed by Martin Robinson.
42436
42437         AudioBusGtk now first lookup for the uninstalled resource files,
42438         if the AUDIO_RESOURCES_PATH environment variable is
42439         set. Additionally the audio file reader is now better dealing with
42440         errors, returning an empty AudioBus in such cases and issuing
42441         warnings on the console output. The cleanup of some member
42442         variables was also moved to the destructor.
42443
42444         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42445         (AudioFileReader):
42446         (WebCore::AudioFileReader::AudioFileReader):
42447         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42448         member variables. This was done in createBus before.
42449         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42450         of error and exit from the main loop so the pipeline is not
42451         forever stuck.
42452         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42453         of error.
42454         * platform/audio/gtk/AudioBusGtk.cpp:
42455         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42456         resources first if AUDIO_RESOURCES_PATH is set.
42457
42458 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42459
42460         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42461         https://bugs.webkit.org/show_bug.cgi?id=99718
42462
42463         Reviewed by Vsevolod Vlasov.
42464
42465         Adds stub method that could be executed from the embedder.
42466
42467         * inspector/front-end/InspectorFrontendAPI.js:
42468         (InspectorFrontendAPI.setDockSide):
42469
42470 2012-10-18  Kent Tamura  <tkent@chromium.org>
42471
42472         Add Localizer::monthFormat and implementations
42473         https://bugs.webkit.org/show_bug.cgi?id=99704
42474
42475         Reviewed by Kentaro Hara.
42476
42477         Localizer::monthFormat will be used for constructing input[type=month] UI.
42478
42479         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42480
42481         * platform/text/Localizer.h:
42482         (Localizer): Declare pure virtual monthFormat function.
42483
42484         * platform/text/LocaleNone.cpp:
42485         (LocaleNone): Declare monthFormat.
42486         (WebCore::LocaleNone::monthFormat):
42487         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42488
42489         * platform/text/LocaleICU.h:
42490         (LocaleICU): Declare monthFormat.
42491         * platform/text/LocaleICU.cpp:
42492         (WebCore::getFormatForSkeleton):
42493         A helper to get a format for the specified skeleton.
42494         The overflow-allocalte-try-again pattern is similar to
42495         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42496         (WebCore::LocaleICU::monthFormat):
42497         Added. Calls getFormatForSkeleton with "yyyyMMM".
42498
42499         * platform/text/mac/LocaleMac.h:
42500         (LocaleMac): Declare monthFormat.
42501         * platform/text/mac/LocaleMac.mm:
42502         (WebCore::LocaleMac::monthFormat):
42503         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42504
42505         * platform/text/LocaleWin.h:
42506         (LocaleWin): Declare monthFormat.
42507         * platform/text/LocaleWin.cpp:
42508         (WebCore::LocaleWin::monthFormat):
42509         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42510
42511 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42512
42513         Web Inspector: add X-WebKit-CSP header into inspector.html
42514         https://bugs.webkit.org/show_bug.cgi?id=99710
42515
42516         Reviewed by Vsevolod Vlasov.
42517
42518         A simple sanity measure.
42519
42520         * inspector/front-end/inspector.html:
42521
42522 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42523
42524         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42525         https://bugs.webkit.org/show_bug.cgi?id=98733
42526
42527         Reviewed by Noam Rosenthal.
42528
42529         Change CustomFilterOperation::parameters() to const function, because
42530         this method is a getter and a const instance needs to call this method.
42531
42532         No new tests because there is no change in behavior.
42533
42534         * platform/graphics/filters/CustomFilterOperation.h:
42535         (WebCore::CustomFilterOperation::parameters):
42536
42537 2012-10-18  Hayato Ito  <hayato@chromium.org>
42538
42539         treeScopeOfParent doesn't return the TreeScope of the parent
42540         https://bugs.webkit.org/show_bug.cgi?id=98207
42541
42542         Reviewed by Hajime Morita.
42543
42544         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42545
42546         No tests needed, this is just a clean up.
42547
42548         * dom/Element.cpp:
42549         (WebCore::Element::removedFrom):
42550
42551 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42552
42553         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42554         https://bugs.webkit.org/show_bug.cgi?id=99711
42555
42556         Reviewed by Vsevolod Vlasov.
42557
42558         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42559
42560         * inspector/front-end/CSSCompletions.js:
42561         (WebInspector.CSSCompletions):
42562         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42563         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42564         * inspector/front-end/CSSKeywordCompletions.js:
42565         (WebInspector.CSSKeywordCompletions.forProperty):
42566
42567 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42568
42569         Unreviewed, do not make UseV8.cmake executable.
42570
42571         * UseV8.cmake: Removed property svn:executable.
42572
42573 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42574
42575         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42576         https://bugs.webkit.org/show_bug.cgi?id=99308
42577
42578         Reviewed by Adam Barth.
42579
42580         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42581         the RTCPeerConnection constructor throws an exception.
42582
42583         Not full testable, existing tests cover the normal case though.
42584
42585         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42586         (WebCore::RTCPeerConnectionHandler::create):
42587         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42588         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42589         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42590         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42591         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42592         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42593         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42594         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42595         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42596         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42597         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42598         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42599         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42600         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42601         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42602         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42603         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42604         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42605         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42606         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42607         (RTCPeerConnectionHandlerChromium):
42608
42609 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42610
42611         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42612         https://bugs.webkit.org/show_bug.cgi?id=99320
42613
42614         The current version of Qt5 deployed on the buildbots does not yet have
42615         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42616         Therefore we disable this code path until Qt5/qtbase has been updated to
42617         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42618
42619         Once Qt5 has been updated, this patch must be reverted.
42620
42621         Reviewed by Noam Rosenthal.
42622
42623         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42624         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42625
42626 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42627
42628         GraphicsSurface should not modify the current GL context.
42629         https://bugs.webkit.org/show_bug.cgi?id=99320
42630
42631         Instead of reusing the currently bound GL context for drawing
42632         the texture onto the GraphicsSurface, GraphicsSurface should
42633         create a new context that shares the texture names with a context
42634         provided by the caller.
42635         This way the OpenGL states are clearly separated and we do not
42636         risk interfeering with the currently bound GL context.
42637
42638         Reviewed by Noam Rosenthal.
42639
42640         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42641         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42642             When creating a GraphicsSurface pass the platform GL context
42643             as a parameter, so it can be used for sharing textures with.
42644         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42645             Pass the texture instead of the FBO. A Texture can be drawn
42646             directly or bound to another FBO, where a framebuffer
42647             always needs to be blit onto the surface.
42648         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42649             Pass the platform GL context as a parameter.
42650         * platform/graphics/surfaces/GraphicsSurface.cpp:
42651         (WebCore::GraphicsSurface::create):
42652         (WebCore::GraphicsSurface::copyFromTexture):
42653         * platform/graphics/surfaces/GraphicsSurface.h:
42654         (GraphicsSurface):
42655         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42656         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42657             Create a new GL context that shares the textures with the
42658             context provided by the caller.
42659         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42660         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42661             Add a convenience function to make the context that
42662             belongs to the surface current.
42663         (GraphicsSurfacePrivate):
42664         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42665             Add a convenience function to make the previously
42666             bound context current again.
42667         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42668             Move blitting of the texture onto the surface
42669             into a separate function within GraphicsSurfacePrivate.
42670         (WebCore::GraphicsSurface::platformCopyFromTexture):
42671             Rename function platformCopyFromFramebuffer to
42672             platformCopyFromTexture, as we are now passing the texture only.
42673         (WebCore::GraphicsSurface::platformCreate):
42674         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42675         (WebCore):
42676         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42677         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42678             Add a convenience function to make the context that
42679             belongs to the surface current.
42680         (GraphicsSurfacePrivate):
42681         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42682             Add a convenience function to make the previously
42683         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42684             Move blitting of the texture onto the surface
42685             into a separate function within GraphicsSurfacePrivate.
42686         (WebCore::resolveGLMethods):
42687             Resolve additional GL methods necessary for this change.
42688         (WebCore::GraphicsSurface::platformCopyFromTexture):
42689             Rename function platformCopyFromFramebuffer to
42690             platformCopyFromTexture, as we are now passing the texture only.
42691         (WebCore::GraphicsSurface::platformCreate):
42692
42693 2012-10-18  Kent Tamura  <tkent@chromium.org>
42694
42695         Set min-width property instead of width property for date/time fields
42696         https://bugs.webkit.org/show_bug.cgi?id=99673
42697
42698         Reviewed by Hajime Morita.
42699
42700         A field can have a text wider than pre-computed width because of
42701         :first-letter property. So, we should set min-width, not width.
42702
42703         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42704
42705         * html/shadow/DateTimeNumericFieldElement.cpp:
42706         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42707         Set min-width instead of width.
42708         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42709         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42710
42711 2012-10-18  MORITA Hajime  <morrita@google.com>
42712
42713         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42714         https://bugs.webkit.org/show_bug.cgi?id=99510
42715
42716         Reviewed by Kent Tamura.
42717
42718         Shadow DOM notification call didn't have checks for mutation detection.
42719         This change adds such checks.
42720
42721         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42722
42723         * dom/ContainerNodeAlgorithms.cpp:
42724         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42725         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42726
42727 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42728
42729         Unreviewed. Rebaselined run-bindings-tests.
42730
42731         * bindings/scripts/test/V8/V8Float64Array.h:
42732         (V8Float64Array):
42733         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42734         (V8TestActiveDOMObject):
42735         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42736         (V8TestCustomNamedGetter):
42737         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42738         (V8TestEventConstructor):
42739         * bindings/scripts/test/V8/V8TestEventTarget.h:
42740         (V8TestEventTarget):
42741         * bindings/scripts/test/V8/V8TestException.h:
42742         (V8TestException):
42743         * bindings/scripts/test/V8/V8TestInterface.h:
42744         (V8TestInterface):
42745         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42746         (V8TestMediaQueryListListener):
42747         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42748         (V8TestNamedConstructor):
42749         * bindings/scripts/test/V8/V8TestNode.h:
42750         (V8TestNode):
42751         * bindings/scripts/test/V8/V8TestObj.h:
42752         (V8TestObj):
42753         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42754         (V8TestSerializedScriptValueInterface):
42755
42756 2012-10-17  Mike West  <mkwst@chromium.org>
42757
42758         Move mixed content logic out of FrameLoader
42759         https://bugs.webkit.org/show_bug.cgi?id=45638
42760
42761         Reviewed by Eric Seidel.
42762
42763         This change moves checks for mixed content out of FrameLoader, and into
42764         a new MixedContentChecker object. It's a pretty straightforward
42765         refactoring with no change to the overall logic, and only minor changes
42766         to the code to reduce repetition.
42767
42768         The only substantive change is renaming the methods from 'checkIf*' to
42769         'can*' to reflect the value of the boolean they return.
42770
42771         The visible functionality shouldn't change; this change should be
42772         covered by existing tests in http/tests/security/mixedContent.
42773
42774         This patch is mostly a revitalization of Eric Sidel's original
42775         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42776
42777         * CMakeLists.txt:
42778         * GNUmakefile.list.am:
42779         * Target.pri:
42780         * WebCore.gypi:
42781         * WebCore.vcproj/WebCore.vcproj:
42782         * WebCore.xcodeproj/project.pbxproj:
42783             Hey, look! A new file!
42784         * loader/FrameLoader.cpp:
42785         (WebCore::FrameLoader::FrameLoader):
42786         * loader/FrameLoader.h:
42787         (WebCore::FrameLoader::mixedContentChecker):
42788         (FrameLoader):
42789         * loader/MixedContentChecker.cpp: Added.
42790         (WebCore):
42791         (WebCore::MixedContentChecker::MixedContentChecker):
42792         (WebCore::MixedContentChecker::client):
42793         (WebCore::asUTF8):
42794         (WebCore::MixedContentChecker::isMixedContent):
42795         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42796         (WebCore::MixedContentChecker::canRunInsecureContent):
42797         (WebCore::MixedContentChecker::logWarning):
42798         * loader/MixedContentChecker.h: Added.
42799         (WebCore):
42800         (MixedContentChecker):
42801             Migrate functionality from FrameLoader::checkIf* to
42802             MixedContentChecker::can*.
42803         * loader/MainResourceLoader.cpp:
42804         (WebCore::MainResourceLoader::willSendRequest):
42805         * loader/SubframeLoader.cpp:
42806         (WebCore::SubframeLoader::pluginIsLoadable):
42807         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42808         * loader/cache/CachedResourceLoader.cpp:
42809         (WebCore::CachedResourceLoader::checkInsecureContent):
42810             Use the new method locations.
42811
42812 2012-10-17  Dan Bernstein  <mitz@apple.com>
42813
42814         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42815         https://bugs.webkit.org/show_bug.cgi?id=99654
42816
42817         Reviewed by Adele Peterson.
42818
42819         When the base character of a combining character sequence is not covered by any one of the
42820         available fonts, there is no point looking for a font that covers the entire sequence, nor
42821         to try to use a combination of fallback fonts for the entire sequence.
42822
42823         * platform/graphics/SimpleFontData.h:
42824         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42825         here and renamed it.
42826         * platform/graphics/mac/ComplexTextController.cpp:
42827         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42828         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42829         for a base character with combining marks, regardless of whether the base character was
42830         covered by any font. Changed it to preserve the return value of
42831         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42832         any font, while systemFallbackFontData() is used to indicate that no single font in the
42833         fallback list covers all characters in the sequence, but the base character is in some font.
42834         * platform/graphics/mac/ComplexTextController.h:
42835         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42836         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42837         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42838         move.
42839         * platform/graphics/mac/FontComplexTextMac.cpp:
42840         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42841         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42842         sequence, while using 0 to signal the base character does not exist in any font.
42843
42844 2012-10-17  Dan Bernstein  <mitz@apple.com>
42845
42846         Try to fix the build after r131701.
42847
42848         * WebCore.exp.in:
42849
42850 2012-10-17  Hayato Ito  <hayato@chromium.org>
42851
42852         Content element does not expose distributedNodes property.
42853         https://bugs.webkit.org/show_bug.cgi?id=99232
42854
42855         Reviewed by Dimitri Glazkov.
42856
42857         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42858         static NodeList whose node are distributed to the content element.
42859
42860         Test: fast/dom/shadow/content-element-distributed-nodes.html
42861
42862         * html/shadow/HTMLContentElement.idl:
42863         * html/shadow/InsertionPoint.cpp:
42864         (WebCore::InsertionPoint::getDistributedNodes):
42865         * html/shadow/InsertionPoint.h:
42866         (InsertionPoint):
42867         * testing/Internals.cpp:
42868         * testing/Internals.h:
42869         (Internals):
42870         * testing/Internals.idl:
42871
42872 2012-10-17  Pan Deng  <pan.deng@intel.com>
42873
42874         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42875         https://bugs.webkit.org/show_bug.cgi?id=90963
42876
42877         Reviewed by Tony Gentilcore.
42878
42879         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.
42880
42881         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42882                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42883                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42884                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42885                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42886                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42887                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42888                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42889
42890         * GNUmakefile.list.am:
42891         * WebCore.gypi:
42892         * page/Performance.cpp:
42893         (WebCore::Performance::webkitGetEntries):
42894         (WebCore::Performance::webkitGetEntriesByType):
42895         (WebCore::Performance::webkitGetEntriesByName):
42896         (WebCore):
42897         (WebCore::Performance::webkitMark):
42898         (WebCore::Performance::webkitClearMarks):
42899         (WebCore::Performance::webkitMeasure):
42900         (WebCore::Performance::webkitClearMeasures):
42901         * page/Performance.h:
42902         (WebCore):
42903         (Performance):
42904         * page/Performance.idl:
42905         * page/PerformanceMark.h: Added.
42906         (WebCore):
42907         (PerformanceMark):
42908         (WebCore::PerformanceMark::create):
42909         (WebCore::PerformanceMark::PerformanceMark):
42910         (WebCore::PerformanceMark::~PerformanceMark):
42911         * page/PerformanceMark.idl: Added.
42912         * page/PerformanceMeasure.h: Added.
42913         (WebCore):
42914         (PerformanceMeasure):
42915         (WebCore::PerformanceMeasure::create):
42916         (WebCore::PerformanceMeasure::PerformanceMeasure):
42917         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42918         * page/PerformanceMeasure.idl: Added.
42919         * page/PerformanceUserTiming.cpp: Added.
42920         (WebCore):
42921         (WebCore::UserTiming::UserTiming):
42922         (WebCore::insertPerformanceEntry):
42923         (WebCore::clearPeformanceEntries):
42924         (WebCore::UserTiming::mark):
42925         (WebCore::UserTiming::clearMarks):
42926         (WebCore::UserTiming::findExistingMarkStartTime):
42927         (WebCore::UserTiming::measure):
42928         (WebCore::UserTiming::clearMeasures):
42929         * page/PerformanceUserTiming.h: Added.
42930         (WebCore):
42931         (UserTiming):
42932         (WebCore::UserTiming::create):
42933
42934 2012-10-17  James Robinson  <jamesr@chromium.org>
42935
42936         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42937
42938         * platform/graphics/GraphicsLayerUpdater.h:
42939         (GraphicsLayerUpdater):
42940
42941 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42942
42943         Attempt to fix the build after r131680.
42944
42945         Unreviewed build fix.
42946
42947         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42948
42949 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42950
42951         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42952         https://bugs.webkit.org/show_bug.cgi?id=99560
42953
42954         Reviewed by Eric Seidel.
42955
42956         Previously we only compared the first ContentData in the linked
42957         list of ContentData's which meant that if the resolved style
42958         for content had the same prefix we wouldn't update the content.
42959
42960         This patch adds a loop to compare each of the ContentData objects
42961         in the linked list.
42962
42963         Test: fast/css-generated-content/content-property-change.html
42964
42965         * rendering/style/StyleRareNonInheritedData.cpp:
42966         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
42967
42968 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42969
42970         Remove StyleContentType since it's not used anymore
42971         https://bugs.webkit.org/show_bug.cgi?id=99659
42972
42973         Reviewed by Eric Seidel.
42974
42975         Remove StyleContentType enum since it's not used anymore and
42976         make the is*() type checking methods on ContentData public.
42977
42978         No new tests needed, this is just deleting dead code.
42979
42980         * rendering/style/ContentData.h:
42981         (ContentData):
42982         * rendering/style/RenderStyleConstants.h:
42983
42984 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
42985
42986         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
42987         https://bugs.webkit.org/show_bug.cgi?id=99518
42988
42989         Reviewed by Dean Jackson.
42990
42991         When using tile caches in place of tiled layers, we need to recompute their
42992         visible area periodically while animations and scrolling are happening.
42993         Make a new class, GraphicsLayerUpdater, to handle this updating.
42994         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
42995         
42996         GraphicsLayer clients are notified that layers need periodic updates. Clients
42997         are free to make use of GraphicsLayerUpdater to handle this updating, as
42998         RenderLayerCompositor does.
42999         
43000         Also do some minor refactoring of methods in RenderLayerCompositor that
43001         get to Page.
43002
43003         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
43004         * GNUmakefile.list.am: Ditto.
43005         * PlatformBlackBerry.cmake: Ditto.
43006         * Target.pri: Ditto.
43007         * WebCore.gypi: Ditto.
43008         * WebCore.vcproj/WebCore.vcproj: Ditto.
43009         * WebCore.xcodeproj/project.pbxproj: Ditto.
43010         * dom/Document.cpp:
43011         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
43012         changed, so it can tell the GraphicsLayerUpdater if it has one.
43013         * platform/graphics/GraphicsLayerClient.h:
43014         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
43015         for layers that need periodic updates, like tile cache layers.
43016         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
43017         to flush layers before the next refresh.
43018         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
43019         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
43020         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
43021         (WebCore::GraphicsLayerUpdater::screenDidChange):
43022         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
43023         * platform/graphics/GraphicsLayerUpdater.h: Added.
43024         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
43025         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
43026         * platform/graphics/ca/GraphicsLayerCA.cpp:
43027         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
43028         tell the client that this layer should be updated soon to update the visible rect.
43029         * rendering/RenderLayerBacking.cpp:
43030         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
43031         on to the compositor.
43032         * rendering/RenderLayerBacking.h:
43033         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
43034         Add OVERRIDE to all the client overrides.
43035         * rendering/RenderLayerCompositor.cpp:
43036         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
43037         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
43038         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
43039         about the current state of animations inside the flush (for visible rect computation), so we
43040         need a AnimationUpdateBlock to make sure all the animation times are in sync.
43041         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
43042         if necessary, and tell it to update soon.
43043         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
43044         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
43045         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
43046         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
43047         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
43048         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
43049         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
43050         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
43051         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
43052         (WebCore::RenderLayerCompositor::page): The helper.
43053         * rendering/RenderLayerCompositor.h:
43054         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
43055
43056 2012-10-17  Eric Seidel  <eric@webkit.org>
43057
43058         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
43059         https://bugs.webkit.org/show_bug.cgi?id=99652
43060
43061         Reviewed by Adam Barth.
43062
43063         My testing showed this moved dom-query.html from  465560 runs/s to 479019
43064         which is about 2% if I'm doing my math correctly.
43065
43066         I suspect that's due to avoiding the ref-churn we were incurring by using
43067         return-by-value symantics here.
43068
43069         This is just the tip of the iceburg. :)
43070
43071         * bindings/v8/V8StringResource.cpp:
43072         (StringTraits):
43073         * bindings/v8/V8ValueCache.h:
43074         (WebCore::WebCoreStringResource::webcoreString):
43075         (WebCore::WebCoreStringResource::atomicString):
43076
43077 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43078
43079         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
43080         https://bugs.webkit.org/show_bug.cgi?id=99534
43081
43082         Reviewed by Alexis Menard.
43083
43084         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
43085
43086         Covered by fast/overflow/line-clamp.html
43087
43088         * css/StyleBuilder.cpp:
43089         (WebCore::StyleBuilder::StyleBuilder):
43090         * css/StyleResolver.cpp:
43091         (WebCore::StyleResolver::applyProperty):
43092
43093 2012-10-17  Andy Estes  <aestes@apple.com>
43094
43095         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
43096         https://bugs.webkit.org/show_bug.cgi?id=99662
43097
43098         Reviewed by Sam Weinig.
43099
43100         Export needed symbols.
43101
43102         * WebCore.exp.in:
43103
43104 2012-10-17  Adam Barth  <abarth@webkit.org>
43105
43106         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43107         https://bugs.webkit.org/show_bug.cgi?id=99653
43108
43109         Reviewed by Eric Seidel.
43110
43111         * bindings/scripts/CodeGeneratorV8.pm:
43112         (GenerateHeader):
43113
43114 2012-10-17  David Grogan  <dgrogan@chromium.org>
43115
43116         IndexedDB: Destroy leveldb directory if unknown schema is detected
43117         https://bugs.webkit.org/show_bug.cgi?id=99636
43118
43119         Reviewed by Tony Chang.
43120
43121         chromium browser test in progress at
43122         https://codereview.chromium.org/11196029
43123
43124         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43125         (WebCore):
43126         (WebCore::isSchemaKnown):
43127         Return true when the schema key doesn't exist because new databases
43128         won't have one.
43129
43130         (WebCore::setUpMetadata):
43131         (WebCore::IDBLevelDBBackingStore::open):
43132         Piggy-back on existing leveldb::destroy code.
43133
43134 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43135
43136         Incorrect rendering of borders on <col> with span > 1
43137         https://bugs.webkit.org/show_bug.cgi?id=76246
43138
43139         Reviewed by Julien Chaffraix.
43140
43141         The HTML5 rendering specification [10.2.2 - Display Types] states that
43142         "For the purposes of the CSS table model, the col element is expected to
43143         be treated as if it was present as many times as its span attribute
43144         specifies."
43145         We should thus apply a col element's border as if the element is present
43146         as many number of times as its span attribute.
43147
43148         Apart from this, we should also treat the col and its enclosing colgroup
43149         separately while computing the collapsed borders.
43150
43151         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43152
43153         * rendering/RenderTableCell.cpp:
43154         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43155         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43156         Borders from col and its enclosing colgroup element should be handled
43157         separately, while considering the preceeding col's end border (for start
43158         border computation) and the next col's start border (for end border
43159         computation).
43160
43161         Also, have made changes for handling of col elements with span attribute as
43162         per the specification. We now apply the border (start or end) of the col
43163         element irrespective of whether it has any span specified for it or not.
43164
43165 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43166
43167         Crash in ContainerNode::removeAllChildren()
43168         https://bugs.webkit.org/show_bug.cgi?id=98443
43169
43170         Reviewed by Eric Carlson.
43171
43172         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43173         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43174         existing event senders.
43175
43176         Test: http/tests/security/video-poster-cross-origin-crash2.html
43177
43178         * loader/ImageLoader.cpp:
43179         (WebCore::ImageLoader::setImage):
43180         (WebCore::ImageLoader::updateFromElement):
43181         (WebCore::ImageLoader::notifyFinished):
43182         (WebCore::ImageLoader::updatedHasPendingEvent):
43183         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43184         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43185         * loader/ImageLoader.h:
43186         (ImageLoader):
43187
43188 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43189
43190         IndexedDB: Closing connection in upgradeneeded should result in error event
43191         https://bugs.webkit.org/show_bug.cgi?id=99486
43192
43193         Reviewed by Tony Chang.
43194
43195         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43196         This was being handled during the "enqueue" phase, which was too early either for synchronously
43197         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43198         logic to the "dispatch" phase.
43199
43200         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43201
43202         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43203         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43204         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43205         * Modules/indexeddb/IDBOpenDBRequest.h:
43206         (IDBOpenDBRequest):
43207
43208 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43209
43210         Use virtual dispatch to create ContentData renderers
43211         https://bugs.webkit.org/show_bug.cgi?id=99646
43212
43213         Reviewed by Eric Seidel.
43214
43215         ContentData are conceptually very similar to Nodes and we can use
43216         the same createRenderer pattern on them to simplify creating
43217         renderers for generated content. Now each ContentData class knows
43218         how to create its own renderer.
43219
43220         Previously we switched over the StyleContentType which required a
43221         case for CONTENT_NONE and made the code look like it could return
43222         null, but this case is actually impossible because no ContentData
43223         class ever has a type of CONTENT_NONE and no null checks are really
43224         needed.
43225
43226         This is the final step in removing dependence on StyleContentType.
43227
43228         No new tests needed, this is just a refactor.
43229
43230         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43231         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43232         * rendering/style/ContentData.cpp:
43233         (WebCore::ImageContentData::createRenderer):
43234         (WebCore):
43235         (WebCore::TextContentData::createRenderer):
43236         (WebCore::CounterContentData::createRenderer):
43237         (WebCore::QuoteContentData::createRenderer):
43238         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43239         (WebCore):
43240         (ContentData):
43241         (ImageContentData):
43242         (TextContentData):
43243         (CounterContentData):
43244         (QuoteContentData):
43245
43246 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43247
43248         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43249         https://bugs.webkit.org/show_bug.cgi?id=89393
43250
43251         Reviewed by Eric Seidel.
43252
43253         Performance optimization, covered by existing tests.
43254
43255         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43256         painting, it would benefit from the same optimization.
43257
43258         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43259         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43260         (I didn't measure the exact timing).
43261
43262         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43263
43264         * rendering/RenderLayer.cpp:
43265         (WebCore::RenderLayer::hitTest):
43266         This is the entrance to the hit testing code so we check if we can bail out early.
43267
43268         (WebCore::RenderLayer::hitTestList):
43269         If we have no self-painting descendant layers, we can bail out.
43270
43271         (WebCore::RenderLayer::hitTestContents):
43272         (WebCore::RenderLayer::hitTestLayer):
43273         hitTest should filter the layers that call these functions. Added some ASSERT to
43274         make sure we don't mistakenly call them when could avoid it.
43275
43276 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43277
43278         [Qt] Certain SVG content freezes QtWebKit
43279         https://bugs.webkit.org/show_bug.cgi?id=97258
43280
43281         Reviewed by Simon Hausmann.
43282
43283         Ensure dashpattern is well-formed by avoiding divisions by zero.
43284
43285         Test: svg/stroke/zero-width-hang.html
43286
43287         * platform/graphics/qt/GraphicsContextQt.cpp:
43288         (WebCore::GraphicsContext::setLineDash):
43289
43290 2012-10-17  Alec Flett  <alecflett@chromium.org>
43291
43292         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43293         https://bugs.webkit.org/show_bug.cgi?id=99619
43294
43295         Reviewed by Adam Barth.
43296
43297         Rather than pass SerializedScriptValue tokens from the backend,
43298         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43299         undefined, (as onSucess()), and integers (as onSuccess(long long))
43300
43301         This reduces backend dependency on things that might require a JS
43302         interpreter on the backend.
43303
43304         No new tests, this is a refactor and existing tests cover
43305         correctness. Tests that might fail include:
43306
43307         Test: storage/indexeddb/index-count.html
43308         Test: storage/indexeddb/objectstore-count.html
43309         Test: storage/indexeddb/database-basics.html
43310
43311         * Modules/indexeddb/IDBCallbacks.h:
43312         (IDBCallbacks):
43313         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43314         (WebCore::IDBCursorBackendImpl::advanceInternal):
43315         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43316         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43317         * Modules/indexeddb/IDBCursorBackendImpl.h:
43318         (WebCore::IDBCursorBackendImpl::value):
43319         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43320         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43321         * Modules/indexeddb/IDBIndex.cpp:
43322         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43323         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43324         (WebCore::IDBIndexBackendImpl::countInternal):
43325         (WebCore::IDBIndexBackendImpl::getInternal):
43326         * Modules/indexeddb/IDBObjectStore.cpp:
43327         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43328         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43329         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43330         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43331         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43332         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43333         * Modules/indexeddb/IDBRequest.cpp:
43334         (WebCore::IDBRequest::onSuccess):
43335         (WebCore):
43336         * Modules/indexeddb/IDBRequest.h:
43337         * Modules/indexeddb/IDBTransaction.cpp:
43338         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43339         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43340         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43341         * bindings/v8/IDBBindingUtilities.cpp:
43342         (WebCore::deserializeIDBValue):
43343         * inspector/InspectorIndexedDBAgent.cpp:
43344         (WebCore):
43345
43346 2012-10-17  Nate Chapin  <japhet@chromium.org>
43347
43348         Move ResourceRequest construction out of SubresourceLoader
43349         https://bugs.webkit.org/show_bug.cgi?id=99627
43350
43351         Reviewed by Adam Barth.
43352
43353         CachedResource::load() fills out a bunch of http headers.
43354         SubresourceLoader::create() adds a bunch more. Merge them.
43355         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43356         because more headers are set directly on CachedResource::m_resourceRequest, rather
43357         than on a copy of it.
43358
43359         No new tests, no functionality change intended.
43360
43361         * loader/SubresourceLoader.cpp:
43362         (WebCore::SubresourceLoader::create):
43363         * loader/cache/CachedRawResource.cpp:
43364         (WebCore::shouldIgnoreHeaderForCacheReuse):
43365         (WebCore):
43366         (WebCore::CachedRawResource::canReuse):
43367         * loader/cache/CachedResource.cpp:
43368         (WebCore::CachedResource::failBeforeStarting):
43369         (WebCore):
43370         (WebCore::CachedResource::addAdditionalRequestHeaders):
43371         (WebCore::CachedResource::load):
43372         * loader/cache/CachedResource.h:
43373         (CachedResource):
43374
43375 2012-10-17  Anders Carlsson  <andersca@apple.com>
43376
43377         Clean up Vector.h
43378         https://bugs.webkit.org/show_bug.cgi?id=99622
43379
43380         Reviewed by Benjamin Poulain.
43381
43382         Fix fallout from removing std::max and std::min using declarations.
43383
43384         * loader/cache/CachedResource.cpp:
43385         (WebCore::CachedResource::currentAge):
43386
43387 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43388
43389         IndexedDB: Enforce unsigned long/unsigned long long ranges
43390         https://bugs.webkit.org/show_bug.cgi?id=99637
43391
43392         Reviewed by Tony Chang.
43393
43394         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43395         arguments, which requires the implementation to throw TypeError for negative values or
43396         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43397         specifically forbidden by the APIs as well.
43398
43399         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43400         address this in the implementation.
43401
43402         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43403
43404         Tests: storage/indexeddb/cursor-advance.html
43405                storage/indexeddb/intversion-bad-parameters.html
43406                storage/indexeddb/intversion-encoding.html
43407
43408         * Modules/indexeddb/IDBCursor.cpp:
43409         (WebCore::IDBCursor::advance): Validate argument range.
43410         * Modules/indexeddb/IDBCursor.h:
43411         (IDBCursor):
43412         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43413         not yet doing the correct validation.
43414         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43415         (WebCore):
43416         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43417         (WebCore::IDBFactory::openInternal): ... this method.
43418         * Modules/indexeddb/IDBFactory.h:
43419         (IDBFactory):
43420         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43421         code right now, can be re-added once webkit.org/b/96798 lands.
43422
43423 2012-10-17  Tony Chang  <tony@chromium.org>
43424
43425         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43426         https://bugs.webkit.org/show_bug.cgi?id=99625
43427
43428         Reviewed by Ojan Vafai.
43429
43430         Previously, we would assume that a vertical slider in RTL would render identically to
43431         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43432
43433         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43434         box-align: center.
43435
43436         Tests: fast/forms/range/input-appearance-range-rtl.html
43437
43438         * html/shadow/SliderThumbElement.cpp:
43439         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43440         just in case the user switches from vertical to horizontal.
43441
43442 2012-10-17  Michael Saboff  <msaboff@apple.com>
43443
43444         Creating a String from an NSString should check for all 8 bit strings
43445         https://bugs.webkit.org/show_bug.cgi?id=99392
43446
43447         Reviewed by Geoffrey Garen.
43448
43449         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43450
43451         No functional change, change covered by existing tests.
43452
43453         * platform/text/mac/StringMac.mm:
43454         (WTF::String::String):
43455
43456 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43457
43458         [EFL] Remove redundant OpenGL library addition from the build system.
43459         https://bugs.webkit.org/show_bug.cgi?id=99629
43460
43461         Reviewed by Rob Buis.
43462
43463         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43464         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43465         days.
43466
43467 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43468
43469         [CMake] Set WebCore_LIBRARIES earlier.
43470         https://bugs.webkit.org/show_bug.cgi?id=99630
43471
43472         Reviewed by Rob Buis.
43473
43474         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43475         files and set the Foo_LIBRARIES variables before we start checking
43476         for optional features, as they might append other libraries to the
43477         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43478
43479 2012-10-17  Philip Rogers  <pdr@google.com>
43480
43481         Allow lazy initialization of SVG XML animated properties.
43482         https://bugs.webkit.org/show_bug.cgi?id=84657
43483
43484         Reviewed by Tim Horton.
43485
43486         When animating a property in the shadow tree, instance properties and tearoffs are created
43487         but they simply reference the animated element's animating properties.
43488
43489         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43490         we initialize the root property and instance properties using startAnimValAnimation(...).
43491         If an instance property is added while the root property is animating, this initialization
43492         will not occur and we crash.
43493
43494         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43495         property if it is not already animating. After this patch, instance properties can be added
43496         in the middle of animation and they will be properly started/initialized.
43497
43498         Test: svg/animations/use-while-animating-crash.html
43499
43500         * svg/SVGAnimatedTypeAnimator.h:
43501         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43502         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43503         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43504
43505 2012-10-17  Dan Carney  <dcarney@google.com>
43506
43507         Bind isolatedWorldSecurityOrigin to world
43508         https://bugs.webkit.org/show_bug.cgi?id=99582
43509
43510         Reviewed by Adam Barth.
43511
43512         Security origin of isolated worlds was not previously set at the world
43513         level, although it could have been. 
43514
43515         No new tests. No change in functionality.
43516
43517         * bindings/v8/DOMWrapperWorld.cpp:
43518         (WebCore::DOMWrapperWorld::deallocate):
43519         (WebCore):
43520         (WebCore::isolatedWorldSecurityOrigins):
43521         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43522         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43523         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43524         * bindings/v8/DOMWrapperWorld.h:
43525         (DOMWrapperWorld):
43526         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43527         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43528         * bindings/v8/ScriptController.cpp:
43529         (WebCore::ScriptController::resetIsolatedWorlds):
43530         (WebCore::ScriptController::evaluateInIsolatedWorld):
43531         (WebCore::ScriptController::collectIsolatedContexts):
43532         * bindings/v8/ScriptController.h:
43533         (ScriptController):
43534         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43535         * bindings/v8/V8DOMWindowShell.cpp:
43536         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43537         * bindings/v8/V8DOMWindowShell.h:
43538         (V8DOMWindowShell):
43539         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43540         (WebCore::V8XMLHttpRequest::constructorCallback):
43541
43542 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43543
43544         GraphicsLayer visible rect computation needs to use the current animating transform
43545         https://bugs.webkit.org/show_bug.cgi?id=99529
43546
43547         Reviewed by Dean Jackson.
43548
43549         If we're running an accelerated animation of transform
43550         on a GraphicsLayerCA, the current value of the transform won't
43551         be reflected in the GraphicsLayer's m_transform. However,
43552         we need the current value of the transform in order to correctly
43553         compute the visible rect of this layer and descendants.
43554         
43555         Add a function to GraphicsLayerClient to retrieve the current
43556         value of the transform from the client.
43557         
43558         RenderLayer's currentTransform() used to return a transform
43559         with transform-origin baked in; GraphicsLayerClient needs one
43560         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43561         to be able to produce either.
43562
43563         Tests: compositing/visible-rect/animated-from-none.html
43564                compositing/visible-rect/animated.html
43565
43566         * platform/graphics/GraphicsLayerClient.h:
43567         (WebCore):
43568         (GraphicsLayerClient):
43569         (WebCore::GraphicsLayerClient::getCurrentTransform):
43570         * platform/graphics/ca/GraphicsLayerCA.cpp:
43571         (WebCore::GraphicsLayerCA::computeVisibleRect):
43572         * rendering/RenderLayer.cpp:
43573         (WebCore::RenderLayer::currentTransform):
43574         * rendering/RenderLayer.h:
43575         * rendering/RenderLayerBacking.cpp:
43576         (WebCore::RenderLayerBacking::currentTransform):
43577         * rendering/RenderLayerBacking.h:
43578         (RenderLayerBacking):
43579
43580 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43581
43582         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43583         https://bugs.webkit.org/show_bug.cgi?id=99355
43584
43585         Reviewed by Tony Chang.
43586
43587         When doing a drag over a plugin, ask the plugin whether it can accept
43588         drag/drop to decide whether drag/drop is possible or not. At present,
43589         plugins do not receive drag events through WebCore (i.e. various
43590         implementations of PluginView::handleMouseEvent ignores the
43591         drop-events). This change makes it possible for the ports to ask the
43592         plugin first to decide whether it can (or wants to) accept drag events.
43593         The default implementation remains the same, i.e. plugins do not receive
43594         drag events. For chromium, the overridden implementation uses the
43595         WebPlugin interface to check whether the plugin can accept drag events.
43596
43597         * html/HTMLPlugInElement.cpp:
43598         (WebCore::HTMLPlugInElement::canProcessDrag):
43599         (WebCore):
43600         * html/HTMLPlugInElement.h:
43601         (WebCore):
43602         (HTMLPlugInElement):
43603         * page/DragController.cpp:
43604         (WebCore::DragController::canProcessDrag):
43605         * plugins/PluginViewBase.h:
43606         (WebCore):
43607         (WebCore::PluginViewBase::canProcessDrag):
43608
43609 2012-10-17  Andreas Kling  <kling@webkit.org>
43610
43611         Shrink EventTargetData by making firingEventListeners vector optional.
43612         <http://webkit.org/b/99532>
43613         <rdar://problem/12515099>
43614
43615         Reviewed by Anders Carlsson.
43616
43617         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43618         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43619         by 48 bytes and progressing Membuster3 by 395kB.
43620
43621         * dom/EventTarget.cpp:
43622         (WebCore::EventTarget::removeEventListener):
43623         (WebCore::EventTarget::fireEventListeners):
43624         (WebCore::EventTarget::removeAllEventListeners):
43625         * dom/EventTarget.h:
43626         (WebCore::EventTarget::isFiringEventListeners):
43627
43628 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43629
43630         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43631         https://bugs.webkit.org/show_bug.cgi?id=99571
43632
43633         Reviewed by Kenneth Rohde Christiansen.
43634
43635         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43636         to avoid hitting assertions later when trying to commit this empty URL to the
43637         database. IconController::url() may indeed return an empty URL but there was
43638         no check for it.
43639
43640         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43641
43642         * loader/icon/IconController.cpp:
43643         (WebCore::IconController::continueLoadWithDecision):
43644
43645 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43646
43647         Fix build warnings : -Wunused-parameter, -Wunused-variable
43648         https://bugs.webkit.org/show_bug.cgi?id=99539
43649
43650         Reviewed by Kentaro Hara.
43651
43652         Fix build warnings about unused parameter or unused variable when
43653         WTF_USE_TILED_BACKING_STORE option is enabled.
43654
43655         * html/shadow/HTMLContentElement.cpp:
43656         (WebCore::contentTagName):
43657         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43658         (WebCore::GraphicsContext3D::getImageData):
43659         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43660         (WebCore::GraphicsContext3DPrivate::createSurface):
43661         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43662         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43663         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43664         * platform/graphics/texmap/TextureMapper.h:
43665         (WebCore::BitmapTexture::canReuseWith):
43666         (WebCore::TextureMapper::beginPainting):
43667         * platform/graphics/texmap/TextureMapperGL.cpp:
43668         (WebCore::TextureMapperGL::drawRepaintCounter):
43669         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43670         (WebCore::BitmapTextureImageBuffer::updateContents):
43671         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43672         * platform/graphics/texmap/TextureMapperLayer.cpp:
43673         (WebCore::TextureMapperLayer::sortByZOrder):
43674         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43675         * rendering/RenderLayerCompositor.cpp:
43676         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43677
43678 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43679
43680         Dynamically added elements do not get re-projected.
43681         https://bugs.webkit.org/show_bug.cgi?id=99227
43682
43683         Reviewed by Dimitri Glazkov.
43684
43685         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43686         is changed.
43687
43688         Test: fast/dom/shadow/content-reprojection-dynamic.html
43689
43690         * html/shadow/ContentDistributor.cpp:
43691         (WebCore::ContentDistributor::distribute):
43692
43693 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43694
43695         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43696         https://bugs.webkit.org/show_bug.cgi?id=99602
43697
43698         Reviewed by Pavel Feldman.
43699
43700         Add delete items to the watch expression's value's context menu.
43701
43702         * inspector/front-end/ObjectPropertiesSection.js:
43703         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43704         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43705         * inspector/front-end/WatchExpressionsSidebarPane.js:
43706         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43707         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43708
43709 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43710
43711         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43712         https://bugs.webkit.org/show_bug.cgi?id=99598
43713
43714         Reviewed by Pavel Feldman.
43715
43716         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43717         when change returns uiSourceCode to non dirty state.
43718         Added wasDirty parameter to workingCopyChanged event.
43719
43720         Test: inspector/debugger/live-edit-breakpoints.html
43721
43722         * inspector/front-end/ResourceScriptMapping.js:
43723         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43724         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43725         * inspector/front-end/UISourceCode.js:
43726         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43727
43728 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43729
43730         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43731
43732         Reviewed by Tor Arne Vestbø.
43733
43734         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43735         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43736         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43737         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43738         therefore the target will always run.
43739
43740         * DerivedSources.pri:
43741
43742 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43743
43744         Unreviewed fix for ImageSourceCG.
43745
43746         * platform/graphics/cg/ImageSourceCG.cpp:
43747         (WebCore::ImageSource::reportMemoryUsage):
43748
43749 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43750
43751         Unreviewed fix for compilation on CG bots.
43752
43753         * platform/graphics/cg/ImageSourceCG.cpp:
43754
43755 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43756
43757         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43758         https://bugs.webkit.org/show_bug.cgi?id=99540
43759
43760         Reviewed by Yury Semikhatsky.
43761
43762         * platform/graphics/ImageSource.cpp:
43763         (WebCore::ImageSource::reportMemoryUsage):
43764         (WebCore):
43765         * platform/graphics/ImageSource.h:
43766         (ImageSource):
43767         * platform/image-decoders/ImageDecoder.cpp:
43768         (WebCore::ImageFrame::reportMemoryUsage):
43769         (WebCore):
43770         (WebCore::ImageDecoder::reportMemoryUsage):
43771         * platform/image-decoders/ImageDecoder.h:
43772         (ImageFrame):
43773         (ImageDecoder):
43774         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43775         (WebCore::ImageFrame::reportMemoryUsage):
43776         (WebCore):
43777
43778 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43779
43780         [Qt] Fix build on Mac OSX 10.6 and earlier.
43781         https://bugs.webkit.org/show_bug.cgi?id=99595
43782
43783         Reviewed by Simon Hausmann.
43784
43785         * Target.pri:
43786
43787 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43788
43789         Web Inspector: display "disconnected" message when remote debugging terminates
43790         https://bugs.webkit.org/show_bug.cgi?id=99316
43791
43792         Reviewed by Yury Semikhatsky.
43793
43794         Otherwise, it is not clear that the front-end is no longer functional.
43795
43796         * inspector/front-end/InspectorFrontendHostStub.js:
43797         (WebInspector.RemoteDebuggingTerminatedScreen):
43798         * inspector/front-end/inspector.js:
43799         (WebInspector.loaded.WebInspector.socket.onclose):
43800         (WebInspector.loaded):
43801
43802 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43803
43804         Web Inspector: delete watch expression button overlaps with the expression value
43805         https://bugs.webkit.org/show_bug.cgi?id=99569
43806
43807         Reviewed by Vsevolod Vlasov.
43808
43809         Delete watch expression button now doesn't overlap with the watch expression.
43810
43811         * inspector/front-end/inspector.css:
43812         (.properties-tree.watch-expressions > li > .value):
43813
43814 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43815
43816         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43817         https://bugs.webkit.org/show_bug.cgi?id=99536
43818
43819         Reviewed by Alexis Menard.
43820
43821         One small step towards removing the giant switch statement in StyleResolver,
43822         this patch moves pointer event property into StyleBuilder.
43823
43824         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43825
43826         * css/StyleBuilder.cpp:
43827         (WebCore::StyleBuilder::StyleBuilder):
43828         * css/StyleResolver.cpp:
43829         (WebCore::StyleResolver::applyProperty):
43830
43831 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43832
43833         Localized date should be based on LDML
43834         https://bugs.webkit.org/show_bug.cgi?id=99570
43835
43836         Reviewed by Kent Tamura.
43837
43838         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43839
43840         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43841
43842         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43843         * platform/text/LocaleICU.h:
43844         (LocaleICU):
43845         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43846         (LocaleNone):
43847         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43848         (WebCore):
43849         * platform/text/LocaleWin.h:
43850         (LocaleWin):
43851         * platform/text/Localizer.cpp:
43852         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43853         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43854         * platform/text/Localizer.h:
43855         * platform/text/mac/LocaleMac.h:
43856         (LocaleMac):
43857         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43858
43859 2012-10-17  Harald Alvestrand  <hta@google.com>
43860
43861         Implement the Selector argument to RTCPeerConnection.getStats
43862         https://bugs.webkit.org/show_bug.cgi?id=99460
43863
43864         Reviewed by Adam Barth.
43865
43866         The change adds two new parameters to the RTCStatsRequest object:
43867         stream and component. Together these are enough to identify a
43868         MediaStreamTrack.
43869
43870         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43871
43872         * Modules/mediastream/MediaStreamTrack.cpp:
43873         (WebCore::MediaStreamTrack::streamDescriptor):
43874         (WebCore):
43875         * Modules/mediastream/MediaStreamTrack.h:
43876         * Modules/mediastream/RTCPeerConnection.cpp:
43877         (WebCore::RTCPeerConnection::getStats):
43878         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43879         (WebCore::RTCStatsRequestImpl::create):
43880         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43881         (WebCore::RTCStatsRequestImpl::hasSelector):
43882         (WebCore):
43883         (WebCore::RTCStatsRequestImpl::stream):
43884         (WebCore::RTCStatsRequestImpl::component):
43885         * Modules/mediastream/RTCStatsRequestImpl.h:
43886         (RTCStatsRequestImpl):
43887         * platform/chromium/support/WebRTCStatsRequest.cpp:
43888         (WebKit):
43889         (WebKit::WebRTCStatsRequest::hasSelector):
43890         (WebKit::WebRTCStatsRequest::stream):
43891         (WebKit::WebRTCStatsRequest::component):
43892         * platform/mediastream/RTCStatsRequest.h:
43893         (WebCore):
43894         (RTCStatsRequest):
43895
43896 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43897
43898         [Qt] Enable use of more AllInOne files
43899         https://bugs.webkit.org/show_bug.cgi?id=99579
43900
43901         Reviewed by Tor Arne Vestbø.
43902
43903         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43904         symbols.
43905
43906         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43907         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43908         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43909         where the X headers get confused by the "Region" type that's also declared in WebCore.
43910         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43911         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43912
43913 2012-10-17  Kent Tamura  <tkent@chromium.org>
43914
43915         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43916         https://bugs.webkit.org/show_bug.cgi?id=99572
43917
43918         Reviewed by Kentaro Hara.
43919
43920         We use flexible box since r131421, and it seems text baseline becomes
43921         incorrect if there are text nodes in a flex container.
43922
43923         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43924
43925         * css/html.css:
43926         (input::-webkit-datetime-edit-text): Added.
43927         * html/shadow/DateTimeEditElement.cpp:
43928         (WebCore::DateTimeEditBuilder::visitLiteral):
43929         Wrap text with an element with ::-webkit-datetime-edit-text.
43930
43931 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43932
43933         [WK2][EFL] Implementation of spellchecking feature.
43934         https://bugs.webkit.org/show_bug.cgi?id=91854
43935
43936         Reviewed by Gyuyoung Kim.
43937
43938         * PlatformEfl.cmake:
43939         Add enchant-related compiler flags: header paths and the library flag.
43940
43941 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43942
43943         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43944         https://bugs.webkit.org/show_bug.cgi?id=99576
43945
43946         Reviewed by Vsevolod Vlasov.
43947
43948         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43949
43950         * inspector/InspectorStyleSheet.cpp:
43951         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43952
43953 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43954
43955         Build fix for WinCE after r131365.
43956
43957         * platform/graphics/GlyphBuffer.h:
43958         (WebCore::GlyphBufferAdvance::width):
43959         * platform/graphics/wince/FontWinCE.cpp:
43960         (WebCore::cursorToX):
43961         * platform/graphics/wince/GraphicsContextWinCE.cpp:
43962         (WebCore::GraphicsContext::drawText):
43963
43964 2012-10-17  Mike West  <mkwst@chromium.org>
43965
43966         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
43967         https://bugs.webkit.org/show_bug.cgi?id=94332
43968
43969         Reviewed by Adam Barth.
43970
43971         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
43972         patch wires up the new error message mechanism to V8, and updates the
43973         Chromium test expectations accordingly.
43974
43975         * bindings/v8/ScriptController.cpp:
43976         (WebCore::ScriptController::disableEval):
43977             Pass 'errorMessage' through to V8.
43978         * bindings/v8/V8DOMWindowShell.cpp:
43979         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43980             Grab the error message from ContentSecurityPolicy, and pass it
43981             through to V8.
43982         * bindings/v8/WorkerContextExecutionProxy.cpp:
43983         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
43984         (WebCore::WorkerContextExecutionProxy::evaluate):
43985         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
43986         * bindings/v8/WorkerContextExecutionProxy.h:
43987         (WorkerContextExecutionProxy):
43988             Convert 'm_disableEvalPending' to a string to store the current
43989             error message, and use it to set the eval state.
43990         * bindings/v8/WorkerScriptController.cpp:
43991         (WebCore::WorkerScriptController::disableEval):
43992             Pass 'errorMessage' through to V8.
43993
43994 2012-10-17  MORITA Hajime  <morrita@google.com>
43995
43996         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
43997         https://bugs.webkit.org/show_bug.cgi?id=99566
43998
43999         Reviewed by Kent Tamura.
44000
44001         It had a too optimistic assertion. This change removes it.
44002
44003         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
44004
44005         * html/HTMLFormControlElement.cpp:
44006         (WebCore::updateFromElementCallback):
44007
44008 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44009
44010         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
44011         https://bugs.webkit.org/show_bug.cgi?id=99555
44012
44013         Reviewed by Yury Semikhatsky.
44014
44015         Save As context menu handler now commits working copy for dirty UISourceCodes.
44016
44017         * inspector/front-end/HandlerRegistry.js:
44018
44019 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44020
44021         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
44022         https://bugs.webkit.org/show_bug.cgi?id=99554
44023
44024         Reviewed by Yury Semikhatsky.
44025
44026         Moved saving to disk from SourceFrame to UISourceCode.
44027
44028         * inspector/front-end/SourceFrame.js:
44029         (WebInspector.SourceFrame.prototype._commitEditing):
44030         * inspector/front-end/UISourceCode.js:
44031         (WebInspector.UISourceCode.prototype._commitContent):
44032
44033 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44034
44035         Web Inspector: [Regression] SASS sources are not saved to disk.
44036         https://bugs.webkit.org/show_bug.cgi?id=99551
44037
44038         Reviewed by Yury Semikhatsky.
44039
44040         Added resource null checks.
44041
44042         * inspector/front-end/StylesSourceMapping.js:
44043         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
44044
44045 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
44046
44047         Clean up ContentData operator overloads
44048         https://bugs.webkit.org/show_bug.cgi?id=99556
44049
44050         Reviewed by Eric Seidel.
44051
44052         Use virtual dispatch for checking ContentData equality instead
44053         of a switch over the type. This the first step in getting rid
44054         of the StyleContentType enum and all the switch statements over
44055         the type().
44056
44057         No tests needed, this is just a refactor.        
44058
44059         * rendering/style/ContentData.cpp:
44060         * rendering/style/ContentData.h:
44061         (ContentData):
44062         (WebCore::operator==):
44063         (WebCore):
44064         (WebCore::operator!=):
44065
44066 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
44067
44068         NEON intrinsics Gauss filter does not work properly
44069         https://bugs.webkit.org/show_bug.cgi?id=98875
44070
44071         Reviewed by Zoltan Herczeg.
44072
44073         Fixing the NEON intrinsics Gauss filter. The stride parameter
44074         was missing from the intrinsics algorithm. Tested with pixel
44075         checks, now it's working properly.
44076
44077         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44078         (WebCore::boxBlurNEON):
44079
44080 2012-10-17  MORITA Hajime  <morrita@google.com>
44081
44082         Crash on Frame::inScope() part 2
44083         https://bugs.webkit.org/show_bug.cgi?id=99543
44084
44085         Reviewed by Kent Tamura.
44086
44087         FrameTree::scopedChildCount() can be called even when the one of child frames
44088         is in orphan state. This change added a guard for that case.
44089
44090         No new tests. A hard-to-test timing issue.
44091
44092         * page/Frame.cpp:
44093         (WebCore::Frame::inScope):
44094
44095 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
44096
44097         Remove shadowAncestorNode() from VisibleSelection
44098         https://bugs.webkit.org/show_bug.cgi?id=99544
44099
44100         Reviewed by Hajime Morita.
44101
44102         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44103
44104         No new tests, no change in behavior.
44105
44106         * editing/VisibleSelection.cpp:
44107         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44108         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44109
44110 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44111
44112         Content of replaced elements should be trimmed to the content edge curve.
44113         https://bugs.webkit.org/show_bug.cgi?id=63899
44114
44115         Reviewed by Simon Fraser.
44116
44117         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44118         being painted over the padding or border in the corners. Previously the clip that was applied
44119         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44120         padding (the content-edge curve) to match the css3 spec.
44121         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44122
44123         Test: fast/replaced/border-radius-clip-content-edge.html
44124
44125         * rendering/RenderBoxModelObject.h:
44126         (RenderBoxModelObject):
44127         * rendering/RenderReplaced.cpp:
44128         (WebCore::RenderReplaced::paint):
44129         * rendering/RenderWidget.cpp:
44130         (WebCore::RenderWidget::paint):
44131
44132 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44133
44134         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44135         https://bugs.webkit.org/show_bug.cgi?id=90539
44136
44137         Reviewed by Kent Tamura.
44138
44139         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44140         honored if the target of the click event is an element nested within the button.
44141
44142         Test: fast/forms/formaction-attribute.html
44143
44144         * loader/FormSubmission.cpp:
44145         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44146         from the nearest FormControlElement ancestor of the event target.
44147
44148 2012-10-16  MORITA Hajime  <morrita@google.com>
44149
44150         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44151         https://bugs.webkit.org/show_bug.cgi?id=99428
44152
44153         Reviewed by Adam Barth.
44154
44155         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44156         - Some properties are added per-context basis by turnin the flag on and
44157         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44158
44159         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44160
44161         * dom/ContextFeatures.cpp:
44162         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44163         * dom/Position.cpp:
44164         (WebCore::Position::Position):
44165         (WebCore::Position::findParent):
44166         * dom/TreeScope.cpp:
44167         (WebCore::TreeScope::getSelection):
44168         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44169         (defaultTagPropertyHash):
44170         (printConstructorInterior):
44171         (printFactoryCppFile):
44172         (printWrapperFunctions):
44173         (printWrapperFactoryCppFile):
44174         * html/HTMLTagNames.in:
44175         * html/shadow/HTMLContentElement.cpp:
44176         (WebCore::contentTagName):
44177         * page/DOMWindow.idl:
44178
44179 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44180
44181         Make RenderObject destruction during detach a top-down operation
44182         https://bugs.webkit.org/show_bug.cgi?id=98336
44183
44184         Reviewed by Eric Seidel.
44185
44186         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44187         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44188         as it doesn't know about the render tree's structure.
44189
44190         The render tree on the other side already supports top-down operations
44191         but it was overriden by the DOM side of detach.
44192
44193         This change only makes ContainerNode::detach do a top-down render tree
44194         destruction. This is a required step towards doing smarter destruction.
44195
44196         Refactoring covered by existing tests.
44197
44198         * dom/ContainerNode.cpp:
44199         (WebCore::ContainerNode::detach):
44200         Changed the method to do a top-down destruction.
44201
44202         * dom/Node.cpp:
44203         (WebCore::Node::detach):
44204         Added this ASSERT that ensures that we have properly cleaned up the
44205         whole DOM subtree. The only exception is child content belonging to a
44206         flow-thread as the code will shuffle the renderers under the flow-thread.
44207
44208         * rendering/RenderObject.cpp:
44209         (WebCore::RenderObject::willBeDestroyed):
44210         As we don't update the node's renderer on the DOM side, do it here.
44211         The upside is that it ensures that we don't left any stray renderer
44212         in the tree.
44213
44214         * rendering/RenderObjectChildList.cpp:
44215         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44216         Removed the calls to setRenderer as they are redundant with what we do
44217         in willBeDestroyed.
44218
44219         * rendering/RenderTextFragment.cpp:
44220         (WebCore::RenderTextFragment::setText):
44221         Removed some now unneeded code, replaced by an ASSERT. This is because
44222         destroying m_firstLetter would automatically reset the node's renderer
44223         in destroyLeftoverChildren.
44224
44225 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44226
44227         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44228         https://bugs.webkit.org/show_bug.cgi?id=99523
44229
44230         Reviewed by Simon Fraser.
44231
44232         There was a call site where the optionIndex was being passed to a
44233         function that expected the listIndex. Convert appropriately.
44234
44235         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44236
44237         * html/HTMLSelectElement.cpp:
44238         (WebCore::HTMLSelectElement::optionSelectedByUser):
44239
44240 2012-10-16  Jian Li  <jianli@chromium.org>
44241
44242         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44243         https://bugs.webkit.org/show_bug.cgi?id=98975
44244
44245         Reviewed by Adam Barth.
44246
44247         Renaming is needed to better match with the draggable region code.
44248
44249         No new tests due to no functional change.
44250
44251         * Configurations/FeatureDefines.xcconfig:
44252         * DerivedSources.make:
44253         * WebCore.exp.in:
44254         * css/CSSComputedStyleDeclaration.cpp:
44255         (WebCore):
44256         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44257         * css/CSSParser.cpp:
44258         (WebCore::CSSParser::parseValue):
44259         * css/CSSProperty.cpp:
44260         (WebCore::CSSProperty::isInheritedProperty):
44261         * css/CSSPropertyNames.in:
44262         * css/CSSValueKeywords.in:
44263         * css/StyleResolver.cpp:
44264         (WebCore::StyleResolver::applyProperty):
44265         * dom/Document.cpp:
44266         (WebCore::Document::Document):
44267         (WebCore):
44268         (WebCore::Document::reportMemoryUsage):
44269         * dom/Document.h:
44270         (WebCore):
44271         (Document):
44272         * page/Chrome.cpp:
44273         (WebCore):
44274         * page/ChromeClient.h:
44275         (ChromeClient):
44276         * page/FrameView.cpp:
44277         (WebCore::FrameView::layout):
44278         (WebCore):
44279         (WebCore::FrameView::paintContents):
44280         * page/FrameView.h:
44281         (FrameView):
44282         * rendering/RenderInline.cpp:
44283         (WebCore):
44284         (WebCore::RenderInline::addAnnotatedRegions):
44285         * rendering/RenderInline.h:
44286         (RenderInline):
44287         * rendering/RenderLayer.cpp:
44288         (WebCore::RenderLayer::scrollTo):
44289         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44290         (WebCore::RenderLayer::setHasVerticalScrollbar):
44291         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44292         * rendering/RenderListBox.cpp:
44293         (WebCore::RenderListBox::setHasVerticalScrollbar):
44294         * rendering/RenderObject.cpp:
44295         (WebCore::RenderObject::styleWillChange):
44296         (WebCore):
44297         (WebCore::RenderObject::addAnnotatedRegions):
44298         * rendering/RenderObject.h:
44299         (WebCore::AnnotatedRegionValue::operator==):
44300         (AnnotatedRegionValue):
44301         (RenderObject):
44302         * rendering/style/RenderStyle.h:
44303         * rendering/style/RenderStyleConstants.h:
44304         * rendering/style/StyleRareNonInheritedData.cpp:
44305         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44306         (WebCore::StyleRareNonInheritedData::operator==):
44307         * rendering/style/StyleRareNonInheritedData.h:
44308         (StyleRareNonInheritedData):
44309
44310 2012-10-16  James Simonsen  <simonjam@chromium.org>
44311
44312         [Page Visibility API] View-less documents should report as hidden
44313         https://bugs.webkit.org/show_bug.cgi?id=99410
44314
44315         Reviewed by Tony Gentilcore.
44316
44317         Test: fast/events/page-visibility-null-view.html
44318
44319         * dom/Document.cpp:
44320         (WebCore::Document::visibilityState):
44321
44322 2012-10-16  Michael Saboff  <msaboff@apple.com>
44323
44324         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44325         https://bugs.webkit.org/show_bug.cgi?id=99484
44326
44327         Reviewed by Eric Seidel.
44328
44329         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44330
44331         No new tests.  Changed macro name, no functional change.
44332
44333         * platform/graphics/TextRun.h:
44334         (WebCore::TextRun::TextRun):
44335         (WebCore::TextRun::subRun):
44336         * rendering/RenderBlock.cpp:
44337         (WebCore::RenderBlock::constructTextRun):
44338         * rendering/RenderBlock.h:
44339         (RenderBlock):
44340
44341 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44342
44343         [Qt] REGRESSION(r131485): It broke the build
44344         https://bugs.webkit.org/show_bug.cgi?id=99499
44345
44346         Unreviewed build (warning) fix.
44347
44348         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44349         (WebCore::TextureMapperShaderProgram::getLocation):
44350
44351 2012-10-16  David Grogan  <dgrogan@chromium.org>
44352
44353         Inspector: Don't fire assert when inspecting an empty db
44354         https://bugs.webkit.org/show_bug.cgi?id=99370
44355
44356         Reviewed by Vsevolod Vlasov.
44357
44358         * inspector/InspectorIndexedDBAgent.cpp:
44359         (WebCore):
44360
44361 2012-10-16  Tony Chang  <tony@chromium.org>
44362
44363         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44364
44365         * rendering/RenderingAllInOne.cpp:
44366
44367 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44368
44369         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44370         https://bugs.webkit.org/show_bug.cgi?id=97951
44371
44372         Reviewed by Simon Fraser.
44373
44374         No new tests as it's a speculative fix based on crash dump analysis.
44375      
44376         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44377
44378         * html/shadow/MediaControlElements.cpp:
44379         (WebCore::MediaControlPanelElement::makeTransparent):
44380
44381 2012-10-16  Emil A Eklund  <eae@chromium.org>
44382
44383         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44384         https://bugs.webkit.org/show_bug.cgi?id=99376
44385
44386         Reviewed by Levi Weintraub.
44387
44388         In r122769 (bug 91410) we added a special-case handling for
44389         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44390         to work around positioning issues in a couple of svg tests.
44391         This was needed to compensate for a workaround in the table
44392         painting code that was fixed in r131358 (bug 99364). As such the
44393         special-case handling for replaced elements is no longer needed
44394         in InlineFlowBox::placeBoxesInBlockDirection.
44395
44396         Furthermore this caused problems with caret repainting leaving
44397         residual pixels which motivated this change.
44398
44399         No new tests, have not been able to write a repaint test to
44400         demonstrate the caret repaint issue.
44401
44402         * rendering/InlineFlowBox.cpp:
44403         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44404
44405 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44406
44407         Some #include hygiene
44408         https://bugs.webkit.org/show_bug.cgi?id=99500
44409
44410         Reviewed by Tony Chang.
44411
44412         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44413         cases this can be replaced by PlatformLayer.h.
44414         
44415         Remove an #include of PluginViewBase.h from Page.h, which was a source
44416         of #include fan-out.
44417
44418         * html/canvas/CanvasRenderingContext2D.h:
44419         * page/Page.h:
44420         * page/scrolling/ScrollingCoordinator.h:
44421         * page/scrolling/ScrollingStateNode.h:
44422         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44423         * platform/graphics/GraphicsContext3D.h:
44424         * platform/graphics/MediaPlayer.h:
44425         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44426         * platform/graphics/gpu/DrawingBuffer.h:
44427         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44428         * plugins/PluginViewBase.h:
44429
44430 2012-10-16  Adam Barth  <abarth@webkit.org>
44431
44432         Document::adoptNode shouldn't special-case <iframe>
44433         https://bugs.webkit.org/show_bug.cgi?id=99247
44434
44435         Reviewed by Ryosuke Niwa.
44436
44437         The special case was added in http://trac.webkit.org/changeset/75293 to
44438         fix a bug with magic iframes. Originally, I planned to remove this
44439         special case, but further investigation reveals that other browsers
44440         throw exceptions for other frame owner elements as well. Now we treat
44441         all frame owner elements the same way.
44442
44443         Test: fast/frames/adopt-object-into-itself.html
44444
44445         * dom/Document.cpp:
44446         (WebCore::Document::adoptNode):
44447
44448 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44449
44450         Init timeout flag in ResourceErrorMac
44451         https://bugs.webkit.org/show_bug.cgi?id=99478
44452
44453         Reviewed by Alexey Proskuryakov.
44454
44455         On construction from platform error types, initialize the timeout flag 
44456         to true if the error results from a timeout.
44457
44458         No new tests, covered by tests that will be added in bug 74802.
44459
44460         * platform/network/mac/ResourceErrorMac.mm:
44461         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44462
44463 2012-10-16  Tony Chang  <tony@chromium.org>
44464
44465         input[type=range] as a flex item renders thumb at wrong position
44466         https://bugs.webkit.org/show_bug.cgi?id=98666
44467
44468         Reviewed by Ojan Vafai.
44469
44470         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44471         The previous code was trying to set the height to 100% and had a bunch of hacks in
44472         the renderer code to set an explicit height. Using the new flexbox allows us to
44473         remove these renderer hacks.
44474
44475         Test: css3/flexbox/flexitem-stretch-range.html
44476
44477         * css/html.css:
44478         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44479         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44480         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44481         no longer setting top/left in the layout code.
44482         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44483         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44484         * html/RangeInputType.cpp:
44485         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44486         since the height of the control should change when adding/removing a datalist.
44487         * html/shadow/SliderThumbElement.cpp:
44488         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44489         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44490         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44491         we use the intrinsic size.
44492         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44493         This used to be handled in the thumb's layout method, but I deleted that.
44494         * html/shadow/SliderThumbElement.h:
44495         * rendering/RenderSlider.cpp:
44496         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44497         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44498         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44499         and expects the input to also have a height of 1px.  It worked before because the height of the input
44500         didn't depend on the height of its children.
44501         * rendering/RenderSlider.h: Fix indentation.
44502         (RenderSlider): Use new flexible box.
44503
44504 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44505
44506         Remove Platform.h include from the header files.
44507         https://bugs.webkit.org/show_bug.cgi?id=98665
44508
44509         Reviewed by Eric Seidel.
44510
44511         We don't want other clients that include WebKit headers to know about Platform.h.
44512
44513         No new tests.
44514
44515         * platform/MemoryPressureHandler.h:
44516         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44517         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44518         * platform/graphics/filters/arm/FELightingNEON.h:
44519
44520 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44521
44522         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44523         https://bugs.webkit.org/show_bug.cgi?id=67587
44524
44525         Reviewed by Adam Barth.
44526
44527         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44528
44529         No new tests. The following existing tests pass with the change:
44530         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44531         fast/dynamic/text-combine.html
44532         fast/writing-mode/japanese-rl-text.html
44533         fast/writing-mode/japanese-rl-selection.html
44534         fast/writing-mode/japanese-lr-text.html
44535         fast/repaint/japanese-rl-selection-repaint.html
44536         fast/writing-mode/border-vertical-lr.html
44537
44538         * platform/graphics/chromium/FontCacheAndroid.cpp:
44539         (WebCore::FontCache::getFontDataForCharacters):
44540
44541 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44542
44543         MediaStream API: Add the chromium API for RTCDataChannel
44544         https://bugs.webkit.org/show_bug.cgi?id=99435
44545
44546         Reviewed by Adam Barth.
44547
44548         Adding WebRTCDataChannel.
44549
44550         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44551
44552         * WebCore.gypi:
44553         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44554         (WebKit):
44555         (ExtraDataContainer):
44556         (WebKit::ExtraDataContainer::ExtraDataContainer):
44557         (WebKit::ExtraDataContainer::extraData):
44558         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44559         (WebKit::WebRTCDataChannel::initialize):
44560         (WebKit::WebRTCDataChannel::assign):
44561         (WebKit::WebRTCDataChannel::reset):
44562         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44563         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44564         (WebKit::WebRTCDataChannel::extraData):
44565         (WebKit::WebRTCDataChannel::setExtraData):
44566         (WebKit::WebRTCDataChannel::label):
44567         (WebKit::WebRTCDataChannel::reliable):
44568         (WebKit::WebRTCDataChannel::setBufferedAmount):
44569         (WebKit::WebRTCDataChannel::readyStateChanged):
44570         (WebKit::WebRTCDataChannel::dataArrived):
44571         (WebKit::WebRTCDataChannel::error):
44572         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44573         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44574         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44575         (WebCore):
44576         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44577         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44578         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44579
44580 2012-10-16  Brady Eidson  <beidson@apple.com>
44581
44582         Update indentation in *ResourceLoader headers to match modern WebKit style
44583         https://bugs.webkit.org/show_bug.cgi?id=99487
44584
44585         Reviewed by Beth Dakin.
44586
44587         I'm going to be working on these classes and the indentation is driving me crazy.
44588
44589         * loader/MainResourceLoader.h:
44590         (WebCore):
44591         (MainResourceLoader):
44592         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44593
44594         * loader/NetscapePlugInStreamLoader.h:
44595         (WebCore):
44596         (NetscapePlugInStreamLoaderClient):
44597         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44598         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44599         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44600         (NetscapePlugInStreamLoader):
44601
44602         * loader/ResourceLoader.h:
44603         (WebCore):
44604         (ResourceLoader):
44605         (WebCore::ResourceLoader::documentLoader):
44606         (WebCore::ResourceLoader::originalRequest):
44607         (WebCore::ResourceLoader::identifier):
44608         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44609         (WebCore::ResourceLoader::willStopBufferingData):
44610         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44611         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44612         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44613         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44614         (WebCore::ResourceLoader::receivedCancellation):
44615         (WebCore::ResourceLoader::url):
44616         (WebCore::ResourceLoader::handle):
44617         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44618         (WebCore::ResourceLoader::reachedTerminalState):
44619         (WebCore::ResourceLoader::request):
44620         (WebCore::ResourceLoader::cancelled):
44621         (WebCore::ResourceLoader::defersLoading):
44622
44623 2012-10-16  Beth Dakin  <bdakin@apple.com>
44624
44625         https://bugs.webkit.org/show_bug.cgi?id=99254
44626         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44627         ScrollingStateTree
44628
44629         Reviewed by Simon Fraser.
44630
44631         This patch finally makes the ScrollingTree over on the 
44632         ScrollingThread aware of the changes that we have been making to the 
44633         ScrollingStateTree.
44634
44635         First, it makes ScrollingTreeNode a much more generic class, similar 
44636         to ScrollingStateNode. It is an abstract class and we will add other 
44637         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44638         this class. 
44639
44640         All of the scrolling functionality that was in ScrollingTreeNode has 
44641         been moved to ScrollingTreeScrollingNode. And likewise, 
44642         ScrollingTreeNodeMac has been re-named to 
44643         ScrollingTreeScrollingNodeMac. 
44644
44645         And finally, instead of just updating and creating the root node, 
44646         ScrollingTree now recurses through the whole ScrollingStateTree to 
44647         create and update a full tree of nodes.
44648
44649         New files and moves files.
44650         * WebCore.xcodeproj/project.pbxproj:
44651
44652         Add a getter for the children vector since we need to recurse it in 
44653         ScrollingTree.
44654         * page/scrolling/ScrollingStateNode.h:
44655         (WebCore::ScrollingStateNode::children):
44656         (ScrollingStateNode):
44657
44658         m_rootNode is now a ScrollingTreeScrollingNode.
44659         * page/scrolling/ScrollingTree.cpp:
44660         (WebCore::ScrollingTree::ScrollingTree):
44661
44662         Instead of just updating the root node, call two new functions that 
44663         will take care of updating the whole tree.
44664         (WebCore::ScrollingTree::commitNewTreeState):
44665
44666         This function ecurses through the ScrollingStateTree and updates the 
44667         corresponding ScrollingTreeNodes.
44668         (WebCore::ScrollingTree::updateNodesFromStateNode):
44669
44670         This function takes the ScrollingStateTree's list of removed nodes 
44671         and removes the corresponding nodes from the ScrollingTree. It will 
44672         destroy the nodes after removing it as long as it's not the root 
44673         node. I think it's the safest choice for now to never remove the root 
44674         node. 
44675         (WebCore::ScrollingTree::removeDestroyedNodes):
44676
44677         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44678         ScrollingTreeNodes.
44679         * page/scrolling/ScrollingTree.h:
44680
44681         All of the scrolling-related functionality has been moved from this 
44682         class to new class ScrollingTreeScrollingNode. And some basic tree 
44683         traversal functionality has been added.
44684         * page/scrolling/ScrollingTreeNode.cpp:
44685         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44686         (WebCore::ScrollingTreeNode::appendChild):
44687         (WebCore::ScrollingTreeNode::removeChild):
44688         * page/scrolling/ScrollingTreeNode.h:
44689         (WebCore):
44690         (ScrollingTreeNode):
44691         (WebCore::ScrollingTreeNode::scrollingNodeID):
44692         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44693         (WebCore::ScrollingTreeNode::parent):
44694         (WebCore::ScrollingTreeNode::setParent):
44695         (WebCore::ScrollingTreeNode::scrollingTree):
44696
44697         This class contains all of the scrolling-related work that used to be 
44698         done in ScrollingTreeNode.
44699         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44700         (WebCore):
44701         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44702         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44703         (WebCore::ScrollingTreeScrollingNode::update):
44704         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44705         (WebCore):
44706         (ScrollingTreeScrollingNode):
44707         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44708         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44709         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44710         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44711         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44712         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44713         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44714         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44715         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44716
44717         I noticed this whitespace error and had to fix it.
44718         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44719         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44720
44721         Include ScrollingTreeScrollingNodeMac.h instead of 
44722         ScrollingTreeNodeMac.h
44723         * page/scrolling/mac/ScrollingTreeMac.mm:
44724
44725         This class was just re-named.
44726         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44727         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44728         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44729         (ScrollingTreeScrollingNodeMac):
44730         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44731         (WebCore::ScrollingTreeScrollingNode::create):
44732         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44733         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44734         (WebCore::ScrollingTreeScrollingNodeMac::update):
44735         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44736         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44737         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44738         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44739         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44740         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44741         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44742         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44743         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44744         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44745         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44746         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44747         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44748         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44749         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44750         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44751         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44752         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44753         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44754         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44755         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44756         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44757         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44758
44759 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44760
44761         Add a new layer type for the page tiled cache layer
44762         https://bugs.webkit.org/show_bug.cgi?id=99491
44763
44764         Reviewed by Dean Jackson.
44765
44766         In preparation for using tile cache layers in place of CATiledLayer,
44767         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44768         since the page tile cache will have some different behavior from
44769         other tile cache layers.
44770         
44771         Generalize code that was looking at LayerTypeTileCacheLayer to use
44772         usesTileCacheLayer() if it applies to both types of tile caches.
44773
44774         * platform/graphics/ca/GraphicsLayerCA.cpp:
44775         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44776         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44777         wash for tiled layers as well as layers with transforms (the tile
44778         wash is just for debugging).
44779         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44780         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44781         * platform/graphics/ca/PlatformCALayer.h:
44782         (WebCore::PlatformCALayer::usesTileCacheLayer):
44783         (PlatformCALayer):
44784         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44785         (PlatformCALayer::PlatformCALayer):
44786         (PlatformCALayer::~PlatformCALayer):
44787         (PlatformCALayer::tiledBacking):
44788         * platform/graphics/mac/WebLayer.mm:
44789         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44790
44791 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44792         An feImage that tries to render itself should be stopped
44793         https://bugs.webkit.org/show_bug.cgi?id=94652
44794
44795         Reviewed by Eric Seidel.
44796
44797         An SVG feImage filter element will accept, as the src to render, an
44798         SVG document that makes use of the feImage itself. This causes the
44799         feImage to try to draw itself while already in the process of drawing
44800         itself. Various problems arise from this. The invariant we wish to
44801         maintain is that no element in the src tree of an feImage element
44802         refers to that feImage.
44803
44804         This patch adds a flag to all FilterData objects that tracks whether or
44805         not the filter is currently applying itself, and avoids applying the
44806         filter recursively.
44807
44808         While it may seem better to catch this problem when the src is set, or
44809         when the filter is built, that turns out to be challenging and
44810         inefficient. Say we choose to test when the src atttribute is set. To
44811         do so would require looking through all of the DOM nodes that will be
44812         rendered for the src, finding all resources used, and checking if any
44813         of them make use fo the feImage element that we are setting the source
44814         for. The infrastructure is not in place to do that, and it would
44815         involve walking a potentially very large portion of the DOM in order
44816         to detect a very rare situation. Note that it is not enough just to
44817         walk the DOM directly under the src; we also need to recursively follow any
44818         resource links to see if they use the feImage (e.g. patterns or
44819         masks or use or ...).
44820
44821         If we instead try to use the renderer node to find self referencing,
44822         we need to recursively walk a potentially very large render tree,
44823         tracing all resources in search of the feImage. This would need to be
44824         done every time the filter is built, which is again a significant
44825         overhead for a situation that is very unlikely to occur. And we do not
44826         have methods that make it easy to find feImage filter effect nodes; they are
44827         hidden behind filter resource nodes.
44828
44829         Hence the runtime check to catch the problem. The check must be in
44830         FilterData and RenderSVGResourceFilter code because we must prevent
44831         the destruction of the feImage when we encounter it recursively.
44832
44833         This patch also renames FilterData::builded to FilterData::isBuilt.
44834
44835         Test: svg/filters/feImage-self-referencing.html
44836
44837         * rendering/svg/RenderSVGResourceFilter.cpp:
44838         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44839         clear the isApplying flag even if the postApplyResource method returns early.
44840         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44841         rename builded to isBuilt.
44842         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44843         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44844         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44845         * rendering/svg/RenderSVGResourceFilter.h:
44846         (WebCore::FilterData::FilterData):
44847         (FilterData): Add isApplying and rename builded to isBuilt.
44848
44849 2012-10-16  Nate Chapin  <japhet@chromium.org>
44850
44851         sendResourceLoadCallbacks() is poorly named
44852         https://bugs.webkit.org/show_bug.cgi?id=99482
44853
44854         Reviewed by Alexey Proskuryakov.
44855
44856         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44857         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44858
44859         No new tests, simple renaming.
44860
44861         * loader/FrameLoader.cpp:
44862         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44863         * loader/ResourceLoader.h:
44864         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44865         * loader/cache/CachedResource.h:
44866         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44867
44868 2012-10-16  Chris Rogers  <crogers@google.com>
44869
44870         Rename some AudioNodes
44871         https://bugs.webkit.org/show_bug.cgi?id=99358
44872
44873         Reviewed by Daniel Bates.
44874
44875         Here's a list of the node names, showing the changing ones:
44876             AudioBufferSourceNode
44877             MediaElementAudioSourceNode
44878             MediaStreamAudioSourceNode
44879             JavaScriptAudioNode ------------> ScriptProcessorNode
44880             RealtimeAnalyserNode ------------> AnalyserNode
44881             AudioGainNode ------------> GainNode
44882             DelayNode
44883             BiquadFilterNode
44884             AudioPannerNode ------------> PannerNode
44885             ConvolverNode
44886             AudioChannelSplitter ------------> ChannelSplitterNode
44887             AudioChannelMerger ------------> ChannelMergerNode
44888             DynamicsCompressorNode
44889             Oscillator ------------> OscillatorNode
44890
44891         * CMakeLists.txt:
44892         * DerivedSources.make:
44893         * DerivedSources.pri:
44894         * GNUmakefile.list.am:
44895         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44896         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44897         * Modules/webaudio/AudioBufferSourceNode.cpp:
44898         (WebCore::AudioBufferSourceNode::setPannerNode):
44899         * Modules/webaudio/AudioBufferSourceNode.h:
44900         (AudioBufferSourceNode):
44901         * Modules/webaudio/AudioContext.cpp:
44902         (WebCore::AudioContext::createJavaScriptNode):
44903         (WebCore::AudioContext::createPanner):
44904         (WebCore::AudioContext::createAnalyser):
44905         (WebCore::AudioContext::createGainNode):
44906         (WebCore::AudioContext::createChannelSplitter):
44907         (WebCore::AudioContext::createChannelMerger):
44908         (WebCore::AudioContext::createOscillator):
44909         * Modules/webaudio/AudioContext.h:
44910         (WebCore):
44911         (AudioContext):
44912         * Modules/webaudio/AudioContext.idl:
44913         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44914         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44915         (WebCore):
44916         (ChannelMergerNode):
44917         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44918         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44919         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44920         (WebCore):
44921         (ChannelSplitterNode):
44922         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44923         * Modules/webaudio/DOMWindowWebAudio.idl:
44924         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44925         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44926         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44927         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44928         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44929         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44930         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44931         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44932         (WebCore):
44933         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44934         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44935         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44936         (WebCore):
44937         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44938         * Modules/webaudio/WaveTable.cpp:
44939         (WebCore::WaveTable::createSine):
44940         (WebCore::WaveTable::createSquare):
44941         (WebCore::WaveTable::createSawtooth):
44942         (WebCore::WaveTable::createTriangle):
44943         (WebCore::WaveTable::generateBasicWaveform):
44944         * Target.pri:
44945         * UseJSC.cmake:
44946         * WebCore.gypi:
44947         * WebCore.xcodeproj/project.pbxproj:
44948         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44949         (WebCore):
44950         (WebCore::JSScriptProcessorNode::visitChildren):
44951         * dom/EventTarget.h:
44952         (WebCore):
44953         * dom/EventTargetFactory.in:
44954
44955 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44956
44957         [Texmap] Refactor TextureMapperShaderManager to be clearer
44958         https://bugs.webkit.org/show_bug.cgi?id=86048
44959
44960         Reviewed by Martin Robinson.
44961
44962         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
44963         many casts and ambiguous ownership.
44964         This refactor does the following:
44965         1. TextureMapperShaderProgram is one class without subclasses.
44966         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
44967            generate both the C++ access function, as well as the GLSL name of the variable. This
44968            allows adding/removing variables from a shader without adding broiler-plate code like
44969            before.
44970
44971         After this change TextureMapperShaderManager has only one responsibility - dealing with
44972         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
44973         in TextureMapperGL.
44974
44975         This is a refactor without new functionality. It has been verified to not break any existing
44976         relevant test.
44977
44978         * platform/graphics/texmap/TextureMapperGL.cpp:
44979         (WebCore::TextureMapperGL::drawBorder):
44980         (WebCore::TextureMapperGL::drawQuad):
44981         (WebCore::TextureMapperGL::drawTextureRectangleARB):
44982         (WebCore::TextureMapperGL::drawTexture):
44983         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
44984         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
44985         (WebCore::TextureMapperGL::beginClip):
44986             Use the MACRO-generated uniform accessors.
44987
44988         (WebCore):
44989         (WebCore::keyForFilterType):
44990         (WebCore::getPassesRequiredForFilter):
44991         (WebCore::gauss):
44992         (WebCore::gaussianKernel):
44993         (WebCore::prepareFilterProgram):
44994         (WebCore::TextureMapperGL::drawFiltered):
44995         (WebCore::BitmapTextureGL::applyFilters):
44996             Move the filter logic to TextureMapperGL
44997
44998         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44999         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
45000         (WebCore::TextureMapperShaderProgram::getLocation):
45001         (ShaderSpec):
45002         (WebCore::ShaderSpec::ShaderSpec):
45003         (WebCore::getShaderSpec):
45004         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
45005         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
45006         (WebCore::TextureMapperShaderManager::getShaderProgram):
45007         * platform/graphics/texmap/TextureMapperShaderManager.h:
45008         (WebCore):
45009         (WebCore::TextureMapperShaderProgram::programID):
45010         (WebCore::TextureMapperShaderProgram::context):
45011         (WebCore::TextureMapperShaderProgram::create):
45012         (TextureMapperShaderProgram):
45013         (TextureMapperShaderManager):
45014             See description.
45015
45016 2012-10-16  Nico Weber  <thakis@chromium.org>
45017
45018         [chromium/mac] Make spelling indicator HighDPI
45019         https://bugs.webkit.org/show_bug.cgi?id=99417
45020
45021         Reviewed by Stephen White.
45022
45023         This is the mac version of http://trac.webkit.org/changeset/130940
45024         Since the mac and non-mac code are very similar again, merge the two
45025         code paths again.
45026
45027         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
45028
45029         * platform/graphics/skia/GraphicsContextSkia.cpp:
45030         (WebCore::GraphicsContext::drawLineForDocumentMarker):
45031
45032 2012-10-16  Tony Chang  <tony@chromium.org>
45033
45034         in a column flexbox, input overflows the box when stretched
45035         https://bugs.webkit.org/show_bug.cgi?id=99273
45036
45037         Reviewed by Ojan Vafai.
45038
45039         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
45040         We didn't see this because of a performance optimization in RenderBox where we stretch children.
45041         Also apply this performance optimization in new flexbox for form controls.
45042
45043         Test: css3/flexbox/stretch-input-in-column.html
45044
45045         * rendering/RenderBox.cpp:
45046         (WebCore::flexboxChildHasStretchAlignment):
45047         (WebCore::isStretchingVerticalFlexboxChild):
45048         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
45049         * rendering/RenderFlexibleBox.cpp:
45050         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
45051
45052 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
45053
45054         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
45055         https://bugs.webkit.org/show_bug.cgi?id=98579
45056
45057         Reviewed by Beth Dakin.
45058
45059         RenderLayers cache repaint rects which are computed relative to the repaint container.
45060         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
45061         so if that changes, we need to recompute repaint rects for all descendants.
45062         
45063         Test: compositing/repaint/requires-backing-repaint.html
45064
45065         * rendering/RenderLayerBacking.cpp:
45066         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
45067
45068 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
45069
45070         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
45071         https://bugs.webkit.org/show_bug.cgi?id=95833
45072
45073         Reviewed by Philippe Normand.
45074
45075         The render bus used in GStreamer's implementation of AudioDestination no longer
45076         allocates memory for each of its channels. Rather than that, when looping, the
45077         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
45078         to the appropriate GstPad, as has been the case before.
45079
45080         No new tests - there are tests covering this change but they are not yet working
45081         on the GTK port or any other GStreamer implementation of Web Audio.
45082
45083         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
45084         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
45085         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
45086         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
45087         (webkit_web_audio_src_init): Remove an unnecessary line.
45088         (webKitWebAudioSrcConstructed): Ditto.
45089         (webKitWebAudioSrcLoop):
45090
45091 2012-10-16  Pablo Flouret  <pablof@motorola.com>
45092
45093         Pre-process CSSGrammar.y before running through bison.
45094         https://bugs.webkit.org/show_bug.cgi?id=94290
45095
45096         Reviewed by Tony Chang.
45097
45098         Running CSSGrammar.y through a preprocessor allows the use of feature
45099         defines in all places of the yacc file (i.e. not just in C blocks).
45100         Mostly useful to be able to keep every part of a feature under feature
45101         flags for self-documenting purposes.
45102
45103         No new tests, CSSGrammar.y should be generated correctly and everything
45104         should keep working as before.
45105
45106         * CMakeLists.txt:
45107         * DerivedSources.make:
45108         * DerivedSources.pri:
45109         * GNUmakefile.am:
45110             Modify build systems to use makegrammar.pl to generate the .y files
45111             and run those through bison.
45112
45113         * WebCore.gyp/WebCore.gyp:
45114             Add a new action to preprocess the CSSGrammar.y.in file before the
45115             bison rule is run.
45116
45117         * WebCore.vcproj/WebCore.vcproj:
45118         * WebCore.xcodeproj/project.pbxproj:
45119             Add the new .y.in / .y.includes files.
45120
45121         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45122             Also moved the top declarations section that has includes, defines,
45123             etc. to its own file. These shouldn't be touched by the first
45124             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45125             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45126             yet.
45127         * css/CSSGrammar.y.includes: Added.
45128             The aforementioned declarations header section. After the .y.in file
45129             is processed it will be concatenated with this one to make the
45130             CSSGrammar.y file.
45131
45132         * css/makegrammar.pl:
45133             Modify the script to handle .y.in files.
45134
45135 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45136
45137         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45138         https://bugs.webkit.org/show_bug.cgi?id=69545
45139
45140         Reviewed by Simon Fraser.
45141
45142         * WebCore.exp.in:
45143
45144 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45145
45146         [Qt] Implement fastBoundingPath/boundingPath distinction.
45147         https://bugs.webkit.org/show_bug.cgi?id=99471
45148
45149         Reviewed by Noam Rosenthal.
45150
45151         Tested by existing test: svg/custom/getBBox-path.svg
45152
45153         * platform/graphics/Path.cpp:
45154         * platform/graphics/qt/PathQt.cpp:
45155         (WebCore::Path::fastBoundingRect):
45156         (WebCore::Path::boundingRect):
45157
45158 2012-10-16  Rob Buis  <rbuis@rim.com>
45159
45160         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45161         https://bugs.webkit.org/show_bug.cgi?id=99302
45162
45163         Reviewed by Yong Li.
45164
45165         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45166
45167         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45168         (WebCore::GraphicsContext3D::compileShader):
45169
45170 2012-10-16  Antoine Quint  <graouts@apple.com>
45171
45172         Inspector should allow reading the compositing debug settings
45173         https://bugs.webkit.org/show_bug.cgi?id=99458
45174
45175         Reviewed by Timothy Hatcher.
45176
45177         * inspector/Inspector.json:
45178         * inspector/InspectorPageAgent.cpp:
45179         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45180         * inspector/InspectorPageAgent.h:
45181
45182 2012-10-16  Dan Bernstein  <mitz@apple.com>
45183
45184         Code to reverse a GlyphBuffer range is repeated in several places
45185         https://bugs.webkit.org/show_bug.cgi?id=99424
45186
45187         Reviewed by Adele Peterson.
45188
45189         * platform/graphics/FontFastPath.cpp:
45190         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45191         GlyphBuffer::reverse.
45192         * platform/graphics/GlyphBuffer.h:
45193         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45194         (WebCore::GlyphBuffer::swap): Made private.
45195         * platform/graphics/WidthIterator.cpp:
45196         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45197         corrected their bounds.
45198         * platform/graphics/mac/FontComplexTextMac.cpp:
45199         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45200         GlyphBuffer::range.
45201
45202 2012-10-16  Nate Chapin  <japhet@chromium.org>
45203
45204         Re-order CachedRawResource::data() to set m_data earlier
45205         https://bugs.webkit.org/show_bug.cgi?id=99361
45206
45207         Reviewed by Adam Barth.
45208
45209         Currently, we calculate the diff between the data parameter and m_data, call
45210         dataReceived(), then set m_data to data. If something inside dataReceived()
45211         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45212         old data instead of the new data, which seems inconsistent.
45213
45214         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45215
45216         * loader/cache/CachedRawResource.cpp:
45217         (WebCore::CachedRawResource::data):
45218
45219 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45220
45221         Fold setCellLogicalWidths logic into RenderTableSection layout
45222         https://bugs.webkit.org/show_bug.cgi?id=99382
45223
45224         Reviewed by Eric Seidel.
45225
45226         setCellLogicalWidths was implemented as a pre-phase to laying out
45227         the table's sections. This split was artificial as any change in
45228         the columns' logical width should trigger a sections' relayout, which
45229         could propagate and mark the cells / rows as needed.
45230
45231         Merging setCellLogicalWidths into RenderTableSection::layout removes
45232         an unneeded cells walking and some clunkiness from our implementation.
45233
45234         Refactoring covered by the existing tests.
45235
45236         * rendering/RenderTable.cpp:
45237         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45238         (WebCore::RenderTable::layout):
45239         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45240         are marked for layout if there is the logical width change.
45241
45242         * rendering/RenderTable.h:
45243         (WebCore::RenderTable):
45244         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45245
45246         (WebCore::RenderTable::setColumnPosition):
45247         If a column position changed, register that our column logical widths changed. This is not
45248         totally true, so added a comment about when it will be wrong.
45249
45250         * rendering/RenderTableCell.h:
45251         * rendering/RenderTableCell.cpp:
45252         (WebCore::RenderTableCell::setCellLogicalWidth):
45253         Updated the function to mark the cell and the row for layout. Also changed the argument to
45254         be an 'int' as this was what was passed in.
45255
45256         * rendering/RenderTableSection.cpp:
45257         (WebCore::RenderTableSection::layout):
45258         * rendering/RenderTableSection.h:
45259         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45260         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45261
45262 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45263
45264         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45265         https://bugs.webkit.org/show_bug.cgi?id=90017
45266
45267         Reviewed by Dimitri Glazkov.
45268
45269         If an element is distributed to an insertion point, the element's
45270         webkit-user-modify is inherited from its shadow host.
45271
45272         No new tests, because the existing test: user-modify-inheritance.html
45273         covers this change.
45274
45275         * css/StyleResolver.cpp:
45276         (WebCore::StyleResolver::styleForElement):
45277         After an element inherits a style from its parent, override user-modify
45278         by using the shadow host's style if the element is distributed.
45279
45280 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45281
45282         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45283         https://bugs.webkit.org/show_bug.cgi?id=99469
45284
45285         Reviewed by Pavel Feldman.
45286
45287         * WebCore.gypi:
45288         * WebCore.vcproj/WebCore.vcproj:
45289         * inspector/compile-front-end.py:
45290         * inspector/front-end/BreakpointManager.js:
45291         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45292         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45293         * inspector/front-end/CompilerScriptMapping.js:
45294         * inspector/front-end/JavaScriptSource.js: Removed.
45295         * inspector/front-end/JavaScriptSourceFrame.js:
45296         (WebInspector.JavaScriptSourceFrame):
45297         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45298         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45299         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45300         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45301         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45302         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45303         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45304         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45305         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45306         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45307         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45308         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45309         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45310         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45311         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45312         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45313         * inspector/front-end/NetworkUISourceCodeProvider.js:
45314         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45315         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45316         * inspector/front-end/ResourceScriptMapping.js:
45317         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45318         * inspector/front-end/ScriptSnippetModel.js:
45319         (WebInspector.ScriptSnippetModel):
45320         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45321         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45322         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45323         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45324         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45325         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45326         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45327         (WebInspector.SnippetScriptFile):
45328         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45329         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45330         * inspector/front-end/ScriptsNavigator.js:
45331         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45332         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45333         * inspector/front-end/ScriptsPanel.js:
45334         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45335         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45336         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45337         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45338         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45339         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45340         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45341         (WebInspector.SnippetJavaScriptSourceFrame):
45342         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45343         * inspector/front-end/StyleSheetOutlineDialog.js:
45344         (WebInspector.StyleSheetOutlineDialog):
45345         (WebInspector.StyleSheetOutlineDialog.show):
45346         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45347         * inspector/front-end/StyleSource.js: Removed.
45348         * inspector/front-end/WebKit.qrc:
45349         * inspector/front-end/inspector.html:
45350
45351 2012-10-15  Jer Noble  <jer.noble@apple.com>
45352
45353         WebAudio: limit output level to 0db
45354         https://bugs.webkit.org/show_bug.cgi?id=95792
45355         <rdar://problem/11966135>
45356
45357         Reviewed by Chris Rogers.
45358
45359         Clamp the output buffer data to the range of [-1,1], which limits
45360         output volume to 0db. This ensures that malicious or poorly-written
45361         pages will not be able to blow through the system volume limit by
45362         creating >0db buffers and effects.
45363
45364         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45365
45366         Clamp the output vector to values of [-1,1]:
45367         * platform/audio/mac/AudioDestinationMac.cpp:
45368         (WebCore::AudioDestinationMac::render):
45369
45370         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45371         * platform/audio/VectorMath.h:
45372         * platform/audio/VectorMath.cpp:
45373         (VectorMath):
45374         (WebCore::VectorMath::vclip):
45375
45376 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45377
45378         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45379         https://bugs.webkit.org/show_bug.cgi?id=99301
45380
45381         Reviewed by Pavel Feldman.
45382
45383         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45384         them instead of being called explicitly.
45385
45386         * inspector/front-end/JavaScriptSourceFrame.js:
45387         (WebInspector.JavaScriptSourceFrame):
45388         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45389         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45390         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45391         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45392         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45393         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45394         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45395         * inspector/front-end/ResourceScriptMapping.js:
45396         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45397         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45398         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45399         (WebInspector.ResourceScriptFile):
45400         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45401         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45402         * inspector/front-end/ScriptSnippetModel.js:
45403         (WebInspector.SnippetScriptFile):
45404         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45405         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45406         * inspector/front-end/StylesSourceMapping.js:
45407         (WebInspector.StyleFile):
45408         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45409         (WebInspector.StyleFile.prototype._workingCopyChanged):
45410         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45411         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45412         (WebInspector.StyleFile.prototype.addRevision):
45413         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45414         * inspector/front-end/UISourceCode.js:
45415         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45416         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45417
45418 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45419
45420         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45421         https://bugs.webkit.org/show_bug.cgi?id=99336
45422
45423         Reviewed by Vsevolod Vlasov.
45424
45425         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45426         Drive-by: fix text node editing artifact in the DOM tree.
45427
45428         * inspector/front-end/ElementsTreeOutline.js:
45429         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45430         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45431
45432 2012-10-16  Mike West  <mkwst@chromium.org>
45433
45434         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45435         https://bugs.webkit.org/show_bug.cgi?id=98945
45436
45437         Reviewed by Pavel Feldman.
45438
45439         Support for styling console messages via '%c' landed without any
45440         parsing of the style information provided. This means that it's fairly
45441         simple to accidentally or maliciously break the console with cleverly
45442         styled messages. To mitigate this risk, whitelisting a safe subset of
45443         CSS seems appropriate.
45444
45445         As a first pass at a reasonable whitelist, this patch allows
45446         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45447         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45448         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45449         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45450
45451         Test: inspector/console/console-format-style-whitelist.html
45452
45453         * inspector/front-end/ConsoleMessage.js:
45454         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45455             Create a buffer element onto which the user-provided styles are
45456             applied. Whitelisted styles are transfered from the buffer onto
45457             the actual console message.
45458         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45459              Returns true if the specific style is whitelisted. Expects styles
45460              in the hyphenated form (that is, '-webkit-padding-start' rather than
45461              CSSOM's 'webkitPaddingStart').
45462
45463 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45464
45465         Handle CSSPropertyOpacity in StyleBuilder.
45466         https://bugs.webkit.org/show_bug.cgi?id=99418
45467
45468         Reviewed by Alexis Menard.
45469
45470         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45471
45472         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45473
45474         * css/StyleBuilder.cpp:
45475         (WebCore::StyleBuilder::StyleBuilder):
45476         * css/StyleResolver.cpp:
45477         (WebCore::StyleResolver::applyProperty):
45478
45479 2012-10-16  Kent Tamura  <tkent@chromium.org>
45480
45481         Fix some appearance glitches of multiple fields input elements
45482         https://bugs.webkit.org/show_bug.cgi?id=99412
45483
45484         A follow-up change for r131421.
45485
45486         * css/themeWin.css:
45487         (input[type="text"]): Don't reset paddings for date/time types.
45488
45489 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45490
45491         hb_face_t instances should not depend on FontPlatformData
45492         https://bugs.webkit.org/show_bug.cgi?id=99430
45493
45494         Reviewed by Kent Tamura.
45495
45496         Use platform specific font data (e.g. SkTypeface) to get
45497         font tables for harfbuzz-ng.
45498
45499         No new tests. No changes in behavior.
45500
45501         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45502         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45503         (WebCore::HarfBuzzNGFace::createFace):
45504         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45505         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45506         (WebCore::HarfBuzzNGFace::createFace):
45507         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45508         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45509         (WebCore::HarfBuzzNGFace::createFace):
45510
45511 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45512
45513         Unreviewed, rolling out r131418.
45514         http://trac.webkit.org/changeset/131418
45515         https://bugs.webkit.org/show_bug.cgi?id=99431
45516
45517         since 131403 seems innocent (Requested by shinyak|_ on
45518         #webkit).
45519
45520         * dom/Document.cpp:
45521         (WebCore::isValidNameNonASCII):
45522         (WebCore):
45523         (WebCore::Document::isValidName):
45524
45525 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45526
45527         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45528         https://bugs.webkit.org/show_bug.cgi?id=99426
45529
45530         Reviewed by Yury Semikhatsky.
45531
45532         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45533         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45534
45535         * dom/WebCoreMemoryInstrumentation.cpp:
45536         (WebCore):
45537         * dom/WebCoreMemoryInstrumentation.h:
45538         (WebCoreMemoryTypes):
45539         * inspector/InspectorOverlay.cpp:
45540         (WebCore::InspectorOverlay::reportMemoryUsage):
45541         (WebCore):
45542         * inspector/InspectorOverlay.h:
45543         (InspectorOverlay):
45544
45545 2012-10-16  Kent Tamura  <tkent@chromium.org>
45546
45547         Remove unused functions in Locale* classes
45548         https://bugs.webkit.org/show_bug.cgi?id=99425
45549
45550         Reviewed by Yuta Kitamura.
45551
45552         Locale*::currentLocale has been unused since LocalizedDate* and
45553         LocalizedNumber* were removed.
45554
45555         No new tests. This shouldn't change any behavior.
45556
45557         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45558         * platform/text/LocaleICU.h: Ditto.
45559         * platform/text/LocaleWin.cpp: Remove currentLocale.
45560         * platform/text/LocaleWin.h: Ditto.
45561         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45562         * platform/text/mac/LocaleMac.mm: Ditto.
45563
45564 2012-10-15  Kent Tamura  <tkent@chromium.org>
45565
45566         Fix some appearance glitches of multiple fields input elements
45567         https://bugs.webkit.org/show_bug.cgi?id=99412
45568
45569         Reviewed by Kentaro Hara.
45570
45571         1. If CSS-specified width is wider than the intrinsic width of an input,
45572         the spin button and the picker indicator triangle should be put at the
45573         right side of the content area.
45574
45575         2. Remove top, right, and bottom paddings to match input[type=number]
45576         appearance as possible.
45577
45578         3. Remove unnecessary position:relative for spin buttons.
45579
45580         4. Center content vertically if the height is taller than the intrinsic height.
45581
45582         Tests: Update all of rendering tests for input element with multiple fields UI.
45583
45584         * css/html.css:
45585         (input[type="date"]):
45586         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45587         - Remove top/right/bottom paddings.
45588         (input[type="datetime"]): Ditto.
45589         (input[type="datetime-local"]): Ditto.
45590         (input[type="month"]): Ditto.
45591         (input[type="time"]): Ditto.
45592         (input[type="week"]): Ditto.
45593         (input::-webkit-datetime-edit):
45594         - Switch to the starndard flexible box from the legacy one.
45595         - Add white-space:pre to avoid to collapse white spaces.
45596         (input::-webkit-datetime-edit-gap):
45597         Added. This element is added to push a spin button to the right side.
45598         (input::-webkit-date-and-time-container):
45599         Add -webkit-flex:1 for the input flexible box.
45600         Sort properties.
45601         (input[type="week"]::-webkit-inner-spin-button):
45602         - Use this in date, datetime, datetime-local, and week types.
45603         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45604         - Add position:static to cancel position:relative below.
45605
45606         * html/shadow/DateTimeEditElement.cpp:
45607         (WebCore::DateTimeEditElement::layout):
45608         Add an element with -webkit-datetime-edit-gap before a spin button.
45609
45610 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45611
45612         Web Inspector: can't click delete button if watch expression is very long
45613         https://bugs.webkit.org/show_bug.cgi?id=99414
45614
45615         Reviewed by Vsevolod Vlasov.
45616
45617         Minus button in watch expression section doesn't overlap with the
45618         expression/value anymore.
45619
45620         * inspector/front-end/inspector.css:
45621         (.properties-tree.watch-expressions > li.hovered):
45622
45623 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45624
45625         Unreviewed, rolling out r131403.
45626         http://trac.webkit.org/changeset/131403
45627         https://bugs.webkit.org/show_bug.cgi?id=99420
45628
45629         Suspicious to cause Performance test failing (Requested by
45630         shinyak|gardenin on #webkit).
45631
45632         * dom/Document.cpp:
45633         (WebCore::Document::isValidName):
45634
45635 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45636
45637         Web Inspector: restore watch expression expansion state
45638         https://bugs.webkit.org/show_bug.cgi?id=99304
45639
45640         Reviewed by Pavel Feldman.
45641
45642         Expand watch expression value and its properties if they were expanded
45643         before update.
45644
45645         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45646
45647         * inspector/front-end/WatchExpressionsSidebarPane.js:
45648         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45649         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45650         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45651         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45652         (WebInspector.WatchedPropertyTreeElement):
45653         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45654         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45655         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45656         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45657
45658 2012-10-15  Mike West  <mkwst@chromium.org>
45659
45660         Warn when CSP headers don't separate directives with ';'.
45661         https://bugs.webkit.org/show_bug.cgi?id=99274
45662
45663         Reviewed by Adam Barth.
45664
45665         A recent bug report exhibited confusion as to what role, exactly,
45666         semicolons play in Content Security Policy definitions. This patch
45667         adjusts the parser to warn web authors if a directive name is
45668         encountered while parsing a source list, which would almost certainly
45669         point to a missing semicolon. For example, something like:
45670
45671             script-src 'self' object-src 'self' style-src *
45672
45673         would throw two warnings, noting that 'object-src' and 'style-src' are
45674         probably meant as directives, and not as source expressions in the
45675         'script-src' source list.
45676
45677         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45678
45679         * page/ContentSecurityPolicy.cpp:
45680         (WebCore::CSPSourceList::parse):
45681             Throw the new warning onto the console if the hostname of a source
45682             expression matches a CSP directive name.
45683         (WebCore::CSPDirectiveList::addDirective):
45684             Use the exciting new static variables so that the names of various
45685             directives are available outside of CSPDirectiveList::addDirective.
45686             These were previously defined as local static ASCIILiterals. Now
45687             they're static const char[] in an anonymous namespace.
45688         (WebCore::ContentSecurityPolicy::isDirectiveName):
45689             Static method that compares a string to all the known directive
45690             names, returning true if there's a (case-insensitive) match.
45691         (WebCore):
45692         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45693             A new warning message which should be printed when a directive name
45694             is encountered as a source expression. Matching the directive name
45695             is done via a new 'isDirectiveName' function which lives in an
45696             anonymous namespace along with the other CSP helper functions.
45697         * page/ContentSecurityPolicy.h:
45698             Added 'reportDirectiveAsSourceExpression' signature.
45699
45700 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45701
45702         Unreviewed, rolling out r131349.
45703         http://trac.webkit.org/changeset/131349
45704         https://bugs.webkit.org/show_bug.cgi?id=97173
45705
45706         Revert r131349 because API test is broken by this commit.
45707
45708         * platform/efl/RunLoopEfl.cpp:
45709         (WebCore::RunLoop::RunLoop):
45710         (WebCore::RunLoop::~RunLoop):
45711
45712 2012-10-15  Nate Chapin  <japhet@chromium.org>
45713
45714         ResourceLoader::sendResourceLoadCallbacks() is backwards
45715         https://bugs.webkit.org/show_bug.cgi?id=99366
45716
45717         Reviewed by Daniel Bates.
45718
45719         No new tests, this function is uncalled but will be used
45720         in a later patch.
45721
45722         * loader/ResourceLoader.h:
45723         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45724
45725 2012-10-15  Dan Bernstein  <mitz@apple.com>
45726
45727         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45728         https://bugs.webkit.org/show_bug.cgi?id=99413
45729
45730         Reviewed by Adele Peterson.
45731
45732         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45733         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45734         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45735
45736         No new test, because there is no change in behavior.
45737
45738         * platform/graphics/Font.cpp:
45739         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45740         floatWidthForSimpleText().
45741         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45742         All but the above caller were passing 0.
45743         * platform/graphics/FontFastPath.cpp:
45744         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45745         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45746         typesetting features require it.
45747         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45748         floatWidthForSimpleText.
45749         * platform/graphics/pango/FontPango.cpp:
45750         (WebCore::Font::floatWidthForComplexText): Ditto.
45751
45752 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45753
45754         Add force parameter to DOMTokenList.toggle
45755         https://bugs.webkit.org/show_bug.cgi?id=99375
45756
45757         Reviewed by Darin Adler.
45758
45759         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45760         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45761
45762         Essentially, the optional boolean force parameter, if present, makes
45763         toggle always add or remove a class.
45764
45765         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45766
45767         * html/DOMTokenList.cpp:
45768         (WebCore::DOMTokenList::toggle):
45769         (WebCore):
45770         * html/DOMTokenList.h:
45771         (DOMTokenList):
45772         * html/DOMTokenList.idl:
45773             New toggle() overload that takes a force parameter and calls
45774             addInternal() or removeInternal() based on it.
45775
45776 2012-10-15  Dan Bernstein  <mitz@apple.com>
45777
45778         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45779         https://bugs.webkit.org/show_bug.cgi?id=99406
45780
45781         Reviewed by Darin Adler.
45782
45783         * platform/graphics/WidthIterator.cpp:
45784         * platform/graphics/WidthIterator.h:
45785         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45786         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45787         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45788         does not support kerning and ligatures.
45789
45790 2012-10-15  Michael Saboff  <msaboff@apple.com>
45791
45792         Add 8 bit patch to Document::isValidName() for the non ASCII case
45793         https://bugs.webkit.org/show_bug.cgi?id=99402
45794
45795         Reviewed by Darin Adler.
45796
45797         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45798
45799         * dom/Document.cpp:
45800         (WebCore::isValidNameNonASCII):
45801         (WebCore::Document::isValidName):
45802
45803 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45804
45805         Support for background-clip:content-box and padding-box with border-radius
45806         https://bugs.webkit.org/show_bug.cgi?id=23166
45807
45808         Reviewed by Simon Fraser.
45809
45810         Test: fast/css/background-clip-radius-values.html
45811
45812         * rendering/RenderBoxModelObject.cpp:
45813         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45814         (WebCore):
45815         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45816         * rendering/RenderBoxModelObject.h:
45817
45818 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45819
45820         Fix unused parameter build warning.
45821         https://bugs.webkit.org/show_bug.cgi?id=99400
45822
45823         Reviewed by Gyuyoung Kim.
45824
45825         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45826
45827         * platform/network/soup/ResourceErrorSoup.cpp:
45828         (WebCore::ResourceError::tlsError):
45829
45830 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45831
45832         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45833         https://bugs.webkit.org/show_bug.cgi?id=99282
45834
45835         Reviewed by Yuta Kitamura.
45836
45837         Reset decompression state if WebSocketInflater decompress a block with
45838         BFINAL set to 1.
45839
45840         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45841
45842         * Modules/websockets/WebSocketDeflater.cpp:
45843         (WebCore::WebSocketInflater::addBytes):
45844         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45845         of the current block was set to 1.
45846         (WebCore::WebSocketInflater::finish): Add an assertion.
45847
45848 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45849
45850         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45851         https://bugs.webkit.org/show_bug.cgi?id=99385
45852
45853         Reviewed by Dean Jackson, Tim Horton.
45854
45855         RenderLayerCompositor always used frameView->frameRect() as the visible
45856         rect on the root used for GraphicsLayer visibleRect computation. This
45857         was wrong for subframes, which require a rect with an origin of (0,0)
45858         and size of the contentsSize().
45859         
45860         It was also wrong when the scrolling is not represented in the GraphicsLayer
45861         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45862         visibleContentRect().
45863
45864         Tests: compositing/visible-rect/scrolled.html
45865                compositing/visible-rect/iframe-and-layers.html
45866                compositing/visible-rect/iframe-no-layers.html
45867
45868         * rendering/RenderLayerCompositor.cpp:
45869         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45870
45871 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45872
45873         Remove page visibility hidden histograms
45874         https://bugs.webkit.org/show_bug.cgi?id=99360
45875
45876         Reviewed by Ojan Vafai.
45877
45878         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45879         investigate a potential optimization where we would destroy the render tree when
45880         a tab was hidden. The optimization was abandoned but the histograms were never
45881         removed. They are too narrow to be reused so this change removes them.
45882
45883         * page/Page.cpp:
45884         (WebCore::Page::setVisibilityState):
45885
45886 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45887
45888         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45889         https://bugs.webkit.org/show_bug.cgi?id=99397
45890
45891         Unreviewed, build fix.
45892
45893         * page/scrolling/ScrollingCoordinator.cpp:
45894         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45895
45896 2012-10-14  Kent Tamura  <tkent@chromium.org>
45897
45898         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45899         https://bugs.webkit.org/show_bug.cgi?id=99291
45900
45901         Reviewed by Hajime Morita.
45902
45903         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45904         direction property, and their direction should be decided by the browser
45905         locale. If the browser locale is a RTL language, date/time input fields
45906         show formats/digits for the RTL language. The layout should be always
45907         RTL regardless of the direction in such case.
45908
45909         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45910
45911         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45912         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45913         Set approriate dir attribute value to the child element of the UA shadow root.
45914
45915 2012-10-15  Andreas Kling  <kling@webkit.org>
45916
45917         StyleResolver: Garbage collect the matched properties cache on a timer.
45918         <http://webkit.org/b/98625>
45919
45920         Reviewed by Eric Seidel.
45921
45922         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45923         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45924         and defers the actual sweep for 60 seconds.
45925
45926         * css/StyleResolver.cpp:
45927         (WebCore::StyleResolver::StyleResolver):
45928         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45929         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45930         * css/StyleResolver.h:
45931         (StyleResolver):
45932
45933 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45934
45935         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45936         https://bugs.webkit.org/show_bug.cgi?id=99362
45937
45938         Reviewed by Martin Robinson.
45939
45940         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45941
45942         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45943         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45944         refeference count.
45945
45946         Covered by existing tests.
45947
45948         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45949         (WTF::adoptGRef):
45950         (WTF):
45951         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45952         (WTF):
45953         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45954         (webkitGstGetPadCaps):
45955         * platform/graphics/gstreamer/GStreamerVersioning.h:
45956         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45957         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45958         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45959         (webkitVideoSinkRender):
45960
45961 2012-10-15  Tony Chang  <tony@chromium.org>
45962
45963         Unreviewed, rolling out r131367.
45964         http://trac.webkit.org/changeset/131367
45965         https://bugs.webkit.org/show_bug.cgi?id=98666
45966
45967         crashes on Apple Mac
45968
45969         * css/html.css:
45970         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
45971         (input[type="range"]::-webkit-slider-runnable-track):
45972         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
45973         * css/mediaControlsChromium.css:
45974         (input[type="range"]::-webkit-media-slider-thumb):
45975         * css/mediaControlsChromiumAndroid.css:
45976         (input[type="range"]::-webkit-media-slider-thumb):
45977         * html/RangeInputType.cpp:
45978         (WebCore::RangeInputType::listAttributeTargetChanged):
45979         * html/shadow/SliderThumbElement.cpp:
45980         (WebCore::RenderSliderThumb::layout):
45981         (WebCore):
45982         (WebCore::RenderSliderContainer::RenderSliderContainer):
45983         (RenderSliderContainer):
45984         (WebCore::RenderSliderContainer::layout):
45985         * html/shadow/SliderThumbElement.h:
45986         (RenderSliderThumb):
45987         * rendering/RenderSlider.cpp:
45988         (WebCore):
45989         (WebCore::RenderSlider::RenderSlider):
45990         (WebCore::RenderSlider::layout):
45991         * rendering/RenderSlider.h:
45992         (WebCore):
45993         (RenderSlider):
45994         (WebCore::RenderSlider::renderName):
45995         (WebCore::RenderSlider::isSlider):
45996         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
45997         (WebCore::toRenderSlider):
45998
45999 2012-10-15  Dan Bernstein  <mitz@apple.com>
46000
46001         Try to fix the build again after r131375.
46002
46003         * platform/graphics/WidthIterator.h:
46004         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
46005
46006 2012-10-15  Dan Bernstein  <mitz@apple.com>
46007
46008         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
46009         code path after r131365.
46010
46011         * platform/graphics/WidthIterator.cpp:
46012         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
46013         sequences.
46014         * platform/graphics/WidthIterator.h:
46015         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
46016         shorter than 2 characters.
46017
46018 2012-10-15  Dan Bernstein  <mitz@apple.com>
46019
46020         Try to fix the Chromium Mac build after r131365.
46021
46022         * platform/graphics/GlyphBuffer.h:
46023         (WebCore::GlyphBufferAdvance::height): Added.
46024         * platform/graphics/skia/FontSkia.cpp:
46025         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
46026
46027 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
46028
46029         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
46030         https://bugs.webkit.org/show_bug.cgi?id=99372
46031
46032         Reviewed by Anders Carlsson.
46033
46034         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
46035         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
46036         works incorrectly.
46037         
46038         Threaded scrolling is not testabled in layout tests.
46039
46040         * page/scrolling/ScrollingCoordinator.cpp:
46041         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
46042         * platform/graphics/GraphicsLayer.h:
46043         (GraphicsLayer):
46044         (WebCore::GraphicsLayer::syncPosition):
46045
46046 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
46047
46048         MediaStream API: Implement RTCDataChannel
46049         https://bugs.webkit.org/show_bug.cgi?id=99080
46050
46051         Reviewed by Adam Barth.
46052
46053         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
46054         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
46055
46056         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
46057
46058         * CMakeLists.txt:
46059         * GNUmakefile.list.am:
46060         * Modules/mediastream/RTCDataChannel.cpp: Added.
46061         (WebCore):
46062         (WebCore::RTCDataChannel::create):
46063         (WebCore::RTCDataChannel::RTCDataChannel):
46064         (WebCore::RTCDataChannel::~RTCDataChannel):
46065         (WebCore::RTCDataChannel::label):
46066         (WebCore::RTCDataChannel::reliable):
46067         (WebCore::RTCDataChannel::readyState):
46068         (WebCore::RTCDataChannel::bufferedAmount):
46069         (WebCore::RTCDataChannel::binaryType):
46070         (WebCore::RTCDataChannel::setBinaryType):
46071         (WebCore::RTCDataChannel::send):
46072         (WebCore::RTCDataChannel::close):
46073         (WebCore::RTCDataChannel::readyStateChanged):
46074         (WebCore::RTCDataChannel::dataArrived):
46075         (WebCore::RTCDataChannel::error):
46076         (WebCore::RTCDataChannel::descriptor):
46077         (WebCore::RTCDataChannel::interfaceName):
46078         (WebCore::RTCDataChannel::scriptExecutionContext):
46079         (WebCore::RTCDataChannel::stop):
46080         (WebCore::RTCDataChannel::eventTargetData):
46081         (WebCore::RTCDataChannel::ensureEventTargetData):
46082         * Modules/mediastream/RTCDataChannel.h: Added.
46083         (WebCore):
46084         (RTCDataChannel):
46085         (WebCore::RTCDataChannel::refEventTarget):
46086         (WebCore::RTCDataChannel::derefEventTarget):
46087         * Modules/mediastream/RTCDataChannel.idl: Added.
46088         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
46089         (WebCore):
46090         (WebCore::RTCDataChannelEvent::create):
46091         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
46092         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
46093         (WebCore::RTCDataChannelEvent::channel):
46094         (WebCore::RTCDataChannelEvent::interfaceName):
46095         * Modules/mediastream/RTCDataChannelEvent.h: Added.
46096         (WebCore):
46097         (RTCDataChannelEvent):
46098         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46099         * Modules/mediastream/RTCPeerConnection.cpp:
46100         (WebCore::RTCPeerConnection::createDataChannel):
46101         (WebCore):
46102         (WebCore::RTCPeerConnection::close):
46103         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46104         (WebCore::RTCPeerConnection::stop):
46105         * Modules/mediastream/RTCPeerConnection.h:
46106         (WebCore):
46107         (RTCPeerConnection):
46108         * Modules/mediastream/RTCPeerConnection.idl:
46109         * WebCore.gypi:
46110         * dom/EventNames.h:
46111         (WebCore):
46112         * dom/EventNames.in:
46113         * dom/EventTargetFactory.in:
46114         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46115         (WebCore):
46116         (WebCore::RTCDataChannelDescriptor::create):
46117         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46118         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46119         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46120         (WebCore::RTCDataChannelDescriptor::dataArrived):
46121         (WebCore::RTCDataChannelDescriptor::error):
46122         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46123         (WebCore):
46124         (RTCDataChannelDescriptorClient):
46125         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46126         (RTCDataChannelDescriptor):
46127         (ExtraData):
46128         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46129         (WebCore::RTCDataChannelDescriptor::client):
46130         (WebCore::RTCDataChannelDescriptor::setClient):
46131         (WebCore::RTCDataChannelDescriptor::label):
46132         (WebCore::RTCDataChannelDescriptor::reliable):
46133         (WebCore::RTCDataChannelDescriptor::readyState):
46134         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46135         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46136         (WebCore::RTCDataChannelDescriptor::extraData):
46137         (WebCore::RTCDataChannelDescriptor::setExtraData):
46138         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46139         (RTCPeerConnectionHandlerDummy):
46140         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46141         (WebCore):
46142         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46143         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46144         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46145         * platform/mediastream/RTCPeerConnectionHandler.h:
46146         (WebCore):
46147         (RTCPeerConnectionHandler):
46148         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46149         (WebCore):
46150         (RTCPeerConnectionHandlerClient):
46151         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46152         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46153         (WebCore):
46154         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46155         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46156         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46157         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46158         (RTCPeerConnectionHandlerChromium):
46159
46160 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46161
46162         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46163         https://bugs.webkit.org/show_bug.cgi?id=99097
46164
46165         Reviewed by Tony Chang.
46166
46167         Include the error causing the abort in the callback from back end to
46168         front end so it can be exposed on the IDBTransaction.error property.
46169
46170         Test: lazy-index-population.html
46171
46172         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46173         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46174         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46175         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46176         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46177         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46178         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46179         * Modules/indexeddb/IDBTransaction.cpp:
46180         (WebCore::IDBTransaction::onAbort):
46181         * Modules/indexeddb/IDBTransaction.h:
46182         (IDBTransaction):
46183         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46184         (WebCore::IDBTransactionBackendImpl::abort):
46185         (WebCore):
46186         (WebCore::IDBTransactionBackendImpl::commit):
46187         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46188         (IDBTransactionBackendImpl):
46189         * Modules/indexeddb/IDBTransactionCallbacks.h:
46190         (IDBTransactionCallbacks):
46191         * inspector/InspectorIndexedDBAgent.cpp:
46192         (WebCore):
46193
46194 2012-10-15  Mike Reed  <reed@google.com>
46195
46196         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46197         https://bugs.webkit.org/show_bug.cgi?id=99326
46198
46199         Reviewed by Stephen White.
46200
46201         No new tests -- existing layouttests exercise this, esp. 
46202           png-partial-load-no-alpha.html
46203           webp-partial-load.html
46204         These two fail if skia is told that these are opaque, which it is w/o this CL.
46205
46206         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46207         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46208         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46209
46210         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46211         (WebCore::ImageFrame::ImageFrame):
46212         (WebCore::ImageFrame::operator=):
46213         (WebCore::ImageFrame::zeroFillPixelData):
46214         (WebCore::ImageFrame::hasAlpha):
46215         (WebCore::ImageFrame::setHasAlpha):
46216         (WebCore::ImageFrame::setStatus):
46217
46218 2012-10-12  Tony Chang  <tony@chromium.org>
46219
46220         input[type=range] as a flex item renders thumb at wrong position
46221         https://bugs.webkit.org/show_bug.cgi?id=98666
46222
46223         Reviewed by Ojan Vafai.
46224
46225         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46226         The previous code was trying to set the height to 100% and had a bunch of hacks in
46227         the renderer code to set an explicit height. Using the new flexbox allows us to
46228         remove these renderer hacks.
46229
46230         Test: css3/flexbox/flexitem-stretch-range.html
46231
46232         * css/html.css:
46233         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46234         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46235         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46236         no longer setting top/left in the layout code.
46237         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46238         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46239         * html/RangeInputType.cpp:
46240         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46241         since the height of the control should change when adding/removing a datalist.
46242         * html/shadow/SliderThumbElement.cpp:
46243         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46244         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46245         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46246         we use the intrinsic size.
46247         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46248         This used to be handled in the thumb's layout method, but I deleted that.
46249         * html/shadow/SliderThumbElement.h:
46250         * rendering/RenderSlider.cpp:
46251         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46252         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46253         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46254         and expects the input to also have a height of 1px.  It worked before because the height of the input
46255         didn't depend on the height of its children.
46256         * rendering/RenderSlider.h: Fix indentation.
46257         (RenderSlider): Use new flexible box.
46258
46259 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46260
46261         Make RenderTable columns() and columnPositions() return a const reference
46262         https://bugs.webkit.org/show_bug.cgi?id=99339
46263
46264         Reviewed by Abhishek Arya.
46265
46266         The 2 getters were returning a non-const reference. This means that callers
46267         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46268         were expected to (for columnPositions(), no one should modify columns()).
46269
46270         Refactoring covered by existing tests.
46271
46272         * rendering/AutoTableLayout.cpp:
46273         (WebCore::AutoTableLayout::layout):
46274         * rendering/FixedTableLayout.cpp:
46275         (WebCore::FixedTableLayout::layout):
46276         Updated those functions to use the new setter.
46277
46278         * rendering/RenderTable.h:
46279         (WebCore::RenderTable::columns):
46280         (WebCore::RenderTable::columnPositions):
46281         Made the 2 functions return a const reference. They are also const now!
46282
46283         (WebCore::RenderTable::setColumnPosition):
46284         Added this setter.
46285
46286         * rendering/RenderTableSection.cpp:
46287         (WebCore::RenderTableSection::addCell):
46288         (WebCore::RenderTableSection::setCellLogicalWidths):
46289         (WebCore::RenderTableSection::dirtiedColumns):
46290         Updated to use a const reference.
46291
46292 2012-10-15  Dan Bernstein  <mitz@apple.com>
46293
46294         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46295         https://bugs.webkit.org/show_bug.cgi?id=99113
46296
46297         Reviewed by Tim Horton.
46298
46299         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46300         * platform/graphics/Font.cpp:
46301         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46302         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46303         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46304         typesetting features.
46305         * platform/graphics/FontFastPath.cpp:
46306         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46307         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46308         about how this is not entirely correct when kerning or ligatures are enabled.
46309         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46310         WidthIterator::advance() when advancing to or from the range of interest.
46311         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46312         WidthIterator::advanceOneCharacter().
46313         * platform/graphics/SimpleFontData.h:
46314         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46315         available.
46316         * platform/graphics/WidthIterator.cpp:
46317         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46318         data member.
46319         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46320         characters treated as spaces.
46321         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46322         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46323         maintaining the advances of characters that are treated as spaces and the characters
46324         preceding them, if necessary.
46325         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46326         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46327         of spaces and characters treated as space.
46328         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46329         a reference.
46330         * platform/graphics/WidthIterator.h:
46331         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46332         instances support the typesetting features of the given font. Returns true if the font is
46333         not a screen font and its typesetting features are kerning, ligatures or both.
46334         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46335         features include kerning or ligatures.
46336         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46337         wkCTFontTransformGlyphs.
46338         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46339         * rendering/svg/SVGTextMetricsBuilder.cpp:
46340         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46341         WidthIterator::advance().
46342         * rendering/svg/SVGTextRunRenderingContext.cpp:
46343         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46344
46345 2012-10-15  Mark Lam  <mark.lam@apple.com>
46346
46347         Fix build broken by r131348.
46348         https://bugs.webkit.org/show_bug.cgi?id=97533.
46349
46350         Not reviewed.
46351
46352         * rendering/RenderView.cpp:
46353         (WebCore::RenderView::layoutContent):
46354
46355 2012-10-15  Andreas Kling  <kling@webkit.org>
46356
46357         Remove WTF::fastDeleteAllValues().
46358         <http://webkit.org/b/99345>
46359
46360         Reviewed by Eric Seidel.
46361
46362         It was only used to fastDelete() a class that was already overriding operator delete
46363         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46364
46365         * css/CSSParser.cpp:
46366         (WebCore::CSSParser::~CSSParser):
46367
46368 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46369
46370         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46371         https://bugs.webkit.org/show_bug.cgi?id=99194
46372
46373         Reviewed by Eric Seidel.
46374
46375         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46376         these two types of elements would cause us to increase our preferred width forever.
46377
46378         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46379
46380         * rendering/RenderBlock.cpp:
46381         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46382
46383 2012-10-15  Emil A Eklund  <eae@chromium.org>
46384
46385         Revert rounding change in RenderTable::paintObject
46386         https://bugs.webkit.org/show_bug.cgi?id=99364
46387
46388         Reviewed by Levi Weintraub.
46389
46390         Bug 91410 changed RenderTable::paintObject to round the offset
46391         in order to avoid table-background bleed through. The root cause
46392         for that has since been fixed and the rounding workaround is no
46393         longer needed. This change reverts the code change from bug
46394         91410 while preserving the test added as a part of that change
46395         as it now passes without the workaround.
46396
46397         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46398
46399         * rendering/RenderTable.cpp:
46400         (WebCore::RenderTable::paintObject):
46401         Remove unnecessary rounding.
46402
46403 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46404
46405         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46406         https://bugs.webkit.org/show_bug.cgi?id=96448
46407
46408         Reviewed by Kenneth Rohde Christiansen.
46409
46410         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46411         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46412         that m_programType encoded the very same information. Dependencies have been updated to reflect
46413         this change.
46414
46415         Current tests already cover this code.
46416
46417         * css/CSSComputedStyleDeclaration.cpp: 
46418         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46419         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46420         * css/StyleResolver.cpp:
46421         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46422         new filter program.
46423         * platform/graphics/filters/CustomFilterProgram.cpp:
46424         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46425         reflect the need of setting the program type explicitly.
46426         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46427         type explicitly.
46428         * platform/graphics/filters/CustomFilterProgram.h:
46429         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46430         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46431         (WebCore::CustomFilterProgramInfo::hash): ditto
46432         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46433         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46434         * platform/graphics/filters/CustomFilterProgramInfo.h:
46435         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46436         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46437         (CustomFilterProgramInfo):
46438         (WebCore::CustomFilterProgramInfo::programType):
46439         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46440         created according to the program type.
46441         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46442         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46443         has been replaced with a check for the program type.
46444         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46445         * rendering/style/StyleCustomFilterProgram.h:
46446         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46447         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46448
46449 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46450
46451         IndexedDB: Key paths should support non-ASCII identifiers
46452         https://bugs.webkit.org/show_bug.cgi?id=98814
46453
46454         Reviewed by Kentaro Hara.
46455
46456         Update the parser for key paths to use the unicode classes from
46457         the IdentifierName production in ECMA-262.
46458
46459         Test: storage/indexeddb/keypath-basics.html
46460
46461         * Modules/indexeddb/IDBKeyPath.cpp:
46462         (WebCore):
46463         (WebCore::IDBKeyPathLexer::lexIdentifier):
46464
46465 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46466
46467         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46468         https://bugs.webkit.org/show_bug.cgi?id=99325
46469
46470         Reviewed by Kenneth Rohde Christiansen.
46471
46472         Based on a patch from Regina Chung.
46473         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46474         The gl context is used as key in a hash map and cannot be NULL.
46475
46476         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46477
46478         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46479         (WebCore::GraphicsContext3D::GraphicsContext3D):
46480
46481 2012-10-15  Mike West  <mkwst@chromium.org>
46482
46483         Console messages containing long URLs should cut at some reasonable length.
46484         https://bugs.webkit.org/show_bug.cgi?id=97980
46485
46486         Reviewed by Pavel Feldman.
46487
46488         This patch lightly modifies the current styling of linkified URLs inside
46489         console messages in order to cut them down to some reasonable size for
46490         viewing. The middle of the URL is snipped out such that the whole
46491         thing fits into 150 characters. This only effects the displayed text;
46492         the link's href isn't changed; the link remains available via the
46493         context menu, accessible via the title attribute, and clicking it still
46494         takes the user directly to the resource in question.
46495
46496         Test: inspector/console/console-trim-long-urls.html
46497
46498         * inspector/front-end/ResourceUtils.js:
46499         (WebInspector.linkifyURLAsNode):
46500             Trim the middle of the URL to bring the whole string down to  down
46501             to 150 characters, and set the link's title to the full URL.
46502
46503 2012-10-15  Tony Chang  <tony@chromium.org>
46504
46505         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46506         https://bugs.webkit.org/show_bug.cgi?id=99348
46507
46508         Reviewed by Ojan Vafai.
46509
46510         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46511         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46512         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46513         eventually.
46514
46515         No new tests, this is just a code refactor.
46516
46517         * rendering/RenderMultiColumnSet.cpp:
46518         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46519         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46520         (WebCore):
46521         * rendering/RenderMultiColumnSet.h:
46522         (RenderMultiColumnSet):
46523         * rendering/RenderView.cpp:
46524         (WebCore::RenderView::computeLogicalHeight):
46525         * rendering/RenderView.h:
46526
46527 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46528
46529         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46530         https://bugs.webkit.org/show_bug.cgi?id=97173
46531
46532         Reviewed by Gyuyoung Kim.
46533
46534         Remove codes to initialize and shutdown the EFL libraries from
46535         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46536         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46537         process.
46538
46539         No new tests. This patch doesn't change behavior.
46540
46541         * platform/efl/RunLoopEfl.cpp:
46542         (WebCore::RunLoop::RunLoop):
46543         (WebCore::RunLoop::~RunLoop):
46544
46545 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46546
46547         [CSSRegions]Add support for auto-height regions (without region-breaks)
46548         https://bugs.webkit.org/show_bug.cgi?id=97533
46549
46550         Reviewed by Julien Chaffraix.
46551
46552         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46553         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46554
46555         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.
46556         In each step of the layout, the regions are laid out before the flow thread is laid out.
46557
46558         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
46559         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46560         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46561         value for the second pass in its overridden logical content height property.
46562
46563         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
46564         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,
46565         for which the auto logical height regions have proper logical height.
46566
46567         A future patch will properly take region breaks into account for the first pass of layout.
46568
46569         Tests: fast/regions/autoheight-abspos-region.html
46570                fast/regions/autoheight-floatright-region.html
46571                fast/regions/autoheight-horizontal-bt.html
46572                fast/regions/autoheight-inlineblock-normalflow-region.html
46573                fast/regions/autoheight-maxheight-region.html
46574                fast/regions/autoheight-minheight-region.html
46575                fast/regions/autoheight-normalflow-region.html
46576                fast/regions/autoheight-vertical-lr.html
46577                fast/regions/autoheight-vertical-rl.html
46578
46579         * rendering/FlowThreadController.cpp:
46580         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46581         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46582         Those regions are marked as needing layout (along with their ancestors).
46583         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46584         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46585         * rendering/FlowThreadController.h:
46586         * rendering/RenderBox.cpp:
46587         Add helper functions to clear out individual logical content width/height.
46588         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46589         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46590         (WebCore::RenderBox::clearOverrideSize):
46591         * rendering/RenderBox.h:
46592         * rendering/RenderFlowThread.cpp:
46593         (WebCore::RenderFlowThread::layout):
46594         (WebCore::RenderFlowThread::computeLogicalHeight):
46595         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46596         bail out early since we cannot compute the flow thread logical height.
46597         (WebCore::RenderFlowThread::regionAtBlockOffset):
46598         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
46599         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
46600         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46601         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46602         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46603         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46604         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46605         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46606         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46607         (WebCore::RenderFlowThread::addForcedRegionBreak):
46608         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
46609         can have its height properly computed.
46610         * rendering/RenderFlowThread.h:
46611         * rendering/RenderNamedFlowThread.cpp:
46612         (WebCore::boxIntersectsRegion):
46613         * rendering/RenderRegion.cpp:
46614         (WebCore::RenderRegion::updateLogicalHeight):
46615         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46616         we use the overrideLogicalContentHeight to update the region logical height.
46617         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46618         * rendering/RenderRegion.h:
46619         * rendering/RenderView.cpp:
46620         (WebCore::RenderView::RenderView):
46621         (WebCore::RenderView::layoutContent):
46622         Added a new function to contain the RenderView block layout and flow threads layout.
46623         (WebCore::RenderView::checkLayoutState):
46624         Helper function keeping the original asserts from RenderView, used in more than one place.
46625         (WebCore::RenderView::layout):
46626         * rendering/RenderView.h:
46627         (WebCore::RenderView::normalLayoutPhase):
46628         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46629
46630 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46631
46632         Web Inspector: Fix memory leak in TreeOutline
46633         https://bugs.webkit.org/show_bug.cgi?id=99307
46634
46635         Reviewed by Alexander Pavlov.
46636
46637         Added cleanup of empty buckets in elements cache.
46638
46639         * inspector/front-end/treeoutline.js:
46640
46641 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46642
46643         Web Inspector: Hide useless controls in remote-debugging mode.
46644         https://bugs.webkit.org/show_bug.cgi?id=99300
46645
46646         Reviewed by Vsevolod Vlasov.
46647
46648         "Close inspector" and "change docking mode" buttons seem to be rather
46649         useless in remote debugging mode.
46650
46651         * inspector/front-end/inspector.css:
46652         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46653         (body.remote .dock-status-bar-item):
46654
46655 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46656
46657         [EFL][WK2] Implement Favicons API
46658         https://bugs.webkit.org/show_bug.cgi?id=99087
46659
46660         Reviewed by Kenneth Rohde Christiansen.
46661
46662         Moved ewk_util from WebKit to WebCore and rename it
46663         to CairoUtilityEfl so that the code can be shared
46664         between WebKit1 and WebKit2. Some related utility
46665         code was also moved from RenderThemeEfl to
46666         CairoUtilityEfl.
46667
46668         No new tests, no behavior change.
46669
46670         * PlatformEfl.cmake:
46671         * platform/efl/RenderThemeEfl.cpp:
46672         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46673         (WebCore):
46674         (WebCore::evasObjectFromCairoImageSurface):
46675         (WebCore::createSurfaceForBackingStore):
46676         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46677         (WebCore):
46678
46679 2012-10-15  Beth Dakin  <bdakin@apple.com>
46680
46681         https://bugs.webkit.org/show_bug.cgi?id=99350
46682         REGRESSION (r131238): Repro crash in 
46683        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46684         opening pdf page
46685         -and corresponding-
46686         <rdar://problem/12499839>
46687
46688         Reviewed by Simon Fraser.
46689
46690         We have to null-check node here. It won't be found if  
46691         clearStateTree() was recently called.
46692         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46693         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46694
46695 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46696
46697         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46698         https://bugs.webkit.org/show_bug.cgi?id=99302
46699
46700         Reviewed by Rob Buis.
46701
46702         RIM PR: 210884
46703         The marco BBLOG() is defined as a no-op in release mode which will
46704         save a function call in the release build.
46705         Internally reviewed by Charles Wei.
46706
46707         No new tests since there's no functional change.
46708
46709         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46710         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46711         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46712         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46713         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46714         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46715         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46716         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46717         (WebCore::VideoLayerWebKitThread::boundsChanged):
46718         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46719         (WebCore::GraphicsContext3D::compileShader):
46720
46721 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46722
46723         [EFL] Provide logging for OnlineState detection code
46724         https://bugs.webkit.org/show_bug.cgi?id=99299
46725
46726         Reviewed by Kenneth Rohde Christiansen.
46727
46728         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46729         debugging of this functionality.
46730
46731         No new tests, no behavior change.
46732
46733         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46734         (WebCore::NetworkStateNotifier::updateState):
46735
46736 2012-10-15  MORITA Hajime  <morrita@google.com>
46737
46738         [Regression r131167] run-webkit-tests fails
46739         https://bugs.webkit.org/show_bug.cgi?id=99279
46740
46741         Reviewed by Kentaro Hara.
46742
46743         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46744         overlooked TestObj. This fix relaxes that assumption to accept it.
46745
46746         No new tests. Fixing an existing test.
46747
46748         * bindings/scripts/CodeGeneratorV8.pm:
46749         (GenerateConstructorGetter):
46750         * bindings/scripts/test/V8/V8TestObj.cpp:
46751         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46752
46753 2012-10-15  Joe Mason  <jmason@rim.com>
46754
46755         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46756         https://bugs.webkit.org/show_bug.cgi?id=99248
46757
46758         Reviewed by George Staikos.
46759
46760         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46761         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46762         updated to the new signature, so the status message is not getting passed on because it is
46763         not calling the correct override.
46764
46765         No new tests because this is fixing a regression.
46766
46767         * platform/network/blackberry/SocketStreamHandle.h:
46768         (SocketStreamHandle):
46769         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46770         (WebCore::SocketStreamHandle::notifyStatusReceived):
46771
46772 2012-10-15  Rob Buis  <rbuis@rim.com>
46773
46774         Remove RenderTextControl::isSelectableElement
46775         https://bugs.webkit.org/show_bug.cgi?id=99334
46776
46777         Reviewed by Andreas Kling.
46778
46779         It seems this method is not used anymore.
46780
46781         * WebCore.order:
46782         * rendering/RenderTextControl.h:
46783
46784 2012-10-15  Mike West  <mkwst@chromium.org>
46785
46786         CSP source expressions should support paths at file-level granularity.
46787         https://bugs.webkit.org/show_bug.cgi?id=99250
46788
46789         Reviewed by Adam Barth.
46790
46791         After a bit of discussion on public-webappsec[1], path support for CSP
46792         source expressions has been tuned to support file-level granularity. In
46793         particular, this means that:
46794
46795         - 'example.com/js' matches a file named 'js'
46796         - 'example.com/js/' matches all files under a directory named 'js'
46797           (note the trailing slash)
46798         - 'example.com/js/file.js' matches only a file named 'file.js'
46799           inside a directory named 'js'
46800
46801         Though this is part of the CSP 1.1 spec, it continues to be exposed
46802         outside the CSP_NEXT flag for back-compatibility.
46803
46804         Test cases have been added to the existing
46805         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46806         in order ensure that the new functionality works correctly.
46807
46808         * page/ContentSecurityPolicy.cpp:
46809         (WebCore::CSPSource::pathMatches):
46810             If the path ends with '/', do a prefix check. If not, check for an
46811             exact match.
46812         (WebCore::CSPSourceList::parsePath):
46813             Don't automatically append a '/' to paths.
46814
46815 2012-10-15  George Staikos  <staikos@webkit.org>
46816
46817         [BlackBerry] Adapt to Platform API changes in string handling
46818         https://bugs.webkit.org/show_bug.cgi?id=99248
46819
46820         Reviewed by Yong Li.
46821
46822         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46823
46824         * html/track/TextTrack.cpp:
46825         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46826         * page/blackberry/SettingsBlackBerry.cpp:
46827         (WebCore):
46828         (WebCore::Settings::initializeDefaultFontFamilies):
46829         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46830         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46831         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46832         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46833         * platform/blackberry/PasteboardBlackBerry.cpp:
46834         (WebCore::Pasteboard::writeSelection):
46835         (WebCore::Pasteboard::writeURL):
46836         (WebCore::Pasteboard::writePlainText):
46837         (WebCore::Pasteboard::plainText):
46838         (WebCore::Pasteboard::documentFragment):
46839         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46840         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46841         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46842         (WebCore::MediaPlayerPrivate::supportsType):
46843         (WebCore::MediaPlayerPrivate::setCertificatePath):
46844         (WebCore::MediaPlayerPrivate::load):
46845         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46846         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46847         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46848         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46849         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46850         (MediaPlayerPrivate):
46851         (WebCore::MediaPlayerPrivate::engineDescription):
46852         * platform/network/blackberry/DNSBlackBerry.cpp:
46853         (WebCore::prefetchDNS):
46854         * platform/network/blackberry/NetworkJob.cpp:
46855         (WebCore::NetworkJob::initialize):
46856         (WebCore::NetworkJob::notifyStatusReceived):
46857         (WebCore::NetworkJob::notifyHeadersReceived):
46858         (WebCore::NetworkJob::handleNotifyClose):
46859         (WebCore::NetworkJob::sendRequestWithCredentials):
46860         * platform/network/blackberry/NetworkJob.h:
46861         (NetworkJob):
46862         * platform/network/blackberry/NetworkManager.cpp:
46863         (WebCore::NetworkManager::startJob):
46864         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46865         (WebCore::ResourceRequest::initializePlatformRequest):
46866         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46867         (WebCore::SocketStreamHandle::SocketStreamHandle):
46868         * platform/text/blackberry/StringBlackBerry.cpp:
46869         (WTF::String::String):
46870         (WTF::String::operator BlackBerry::Platform::String):
46871         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46872
46873 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46874
46875         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46876         its current position is at a segment boundary (4096) ends up adding an
46877         unitialized segment (with uninitialized memory) to the SharedBuffer.
46878         https://bugs.webkit.org/show_bug.cgi?id=99000
46879
46880         Reviewed by Adam Barth.
46881
46882         * platform/SharedBuffer.cpp:
46883         (WebCore::SharedBuffer::append):
46884
46885 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46886
46887         Make CSS variable names case-insensitive.
46888         https://bugs.webkit.org/show_bug.cgi?id=98712
46889
46890         Reviewed by Tony Chang.
46891
46892         This patch modifies the parser to normalize all variable names to lower case,
46893         making variable definitions consistent with other property names, which are also case insensitive.
46894         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46895
46896         Test: fast/css/variables/case-insensitive.html
46897
46898         * css/CSSParser.cpp:
46899         (WebCore::CSSParser::createPrimitiveNumericValue):
46900         (WebCore):
46901         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46902         (WebCore::CSSParser::parseValidPrimitive):
46903         (WebCore::CSSParser::parseValue):
46904         (WebCore::CSSParser::storeVariableDeclaration):
46905         (WebCore::CSSParserString::lowerSubstring):
46906         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46907         * css/CSSParser.h:
46908         (CSSParser):
46909         * css/CSSParserValues.h:
46910         (CSSParserString):
46911         (WebCore::CSSParserString::lowerSubstring):
46912
46913 2012-10-15  Michael Saboff  <msaboff@apple.com>
46914
46915         Update RenderText to use String instead of UChar* for text
46916         https://bugs.webkit.org/show_bug.cgi?id=96979
46917
46918         Reviewed by Dan Bernstein.
46919
46920         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46921         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46922         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46923         now written as rt->characterAt(n).
46924         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46925         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46926         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46927         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46928         parameter.  
46929         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46930         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46931         updated to TextRun's with 8 bit data.
46932         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46933
46934         No function change therefore no new tests.
46935
46936         * html/parser/HTMLTokenizer.cpp:
46937         (WebCore::vectorEqualsString):
46938         (WebCore::HTMLTokenizer::nextToken):
46939         * html/parser/HTMLTokenizer.h:
46940         (HTMLTokenizer):
46941         * html/track/WebVTTTokenizer.cpp:
46942         (WebCore::vectorEqualsString):
46943         (WebCore::WebVTTTokenizer::nextToken):
46944         * html/track/WebVTTTokenizer.h:
46945         (WebVTTTokenizer):
46946         * platform/graphics/Font.h:
46947         (WebCore::Font::glyphDataForCharacter):
46948         * platform/graphics/FontFastPath.cpp:
46949         (WebCore):
46950         * platform/graphics/TextRun.h:
46951         (WebCore::TextRun::TextRun):
46952         (WebCore::TextRun::subRun):
46953         (TextRun):
46954         * platform/graphics/mac/ComplexTextController.cpp:
46955         (WebCore::TextLayout::isNeeded):
46956         (WebCore::TextLayout::constructTextRun):
46957         * rendering/InlineFlowBox.cpp:
46958         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46959         * rendering/InlineIterator.h:
46960         (WebCore::InlineIterator::atTextParagraphSeparator):
46961         (WebCore::InlineIterator::current):
46962         (WebCore::InlineIterator::previousInSameNode):
46963         * rendering/InlineTextBox.cpp:
46964         (WebCore::adjustCharactersAndLengthForHyphen):
46965         (WebCore::InlineTextBox::paint):
46966         (WebCore::InlineTextBox::paintSelection):
46967         (WebCore::InlineTextBox::constructTextRun):
46968         * rendering/InlineTextBox.h:
46969         (InlineTextBox):
46970         * rendering/RenderBlock.cpp:
46971         (WebCore::constructTextRunInternal):
46972         (WebCore::RenderBlock::constructTextRun):
46973         * rendering/RenderBlock.h:
46974         (RenderBlock):
46975         * rendering/RenderBlockLineLayout.cpp:
46976         (WebCore::endsWithASCIISpaces):
46977         (WebCore::reachedEndOfTextRenderer):
46978         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
46979         (WebCore::shouldSkipWhitespaceAfterStartObject):
46980         (WebCore::textWidth):
46981         (WebCore::tryHyphenating):
46982         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
46983         * rendering/RenderCombineText.cpp:
46984         (WebCore::RenderCombineText::getStringToRender):
46985         (WebCore::RenderCombineText::combineText):
46986         * rendering/RenderCombineText.h:
46987         (RenderCombineText):
46988         * rendering/RenderText.cpp:
46989         (SameSizeAsRenderText):
46990         (WebCore::RenderText::RenderText):
46991         (WebCore::RenderText::widthFromCache):
46992         (WebCore::RenderText::computePreferredLogicalWidths):
46993         (WebCore::RenderText::setTextInternal):
46994         (WebCore::RenderText::width):
46995         * rendering/RenderText.h:
46996         (WebCore::RenderText::is8Bit):
46997         (WebCore::RenderText::characters8):
46998         (WebCore::RenderText::characters16):
46999         (WebCore::RenderText::characterAt):
47000         (WebCore::RenderText::operator[]):
47001         (RenderText):
47002         * xml/parser/MarkupTokenBase.h:
47003         (WebCore::MarkupTokenBase::appendToCharacter):
47004         (MarkupTokenBase):
47005         (WebCore::MarkupTokenBase::isAll8BitData):
47006
47007 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
47008
47009         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
47010         https://bugs.webkit.org/show_bug.cgi?id=99324
47011
47012         Reviewed by Pavel Feldman.
47013
47014         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
47015         and dynamic scripts loaded before inspector was opened.
47016
47017         Tests: http/tests/inspector-enabled/dynamic-scripts.html
47018                inspector/debugger/dynamic-scripts.html
47019
47020         * inspector/front-end/NetworkLog.js:
47021         (WebInspector.NetworkLog.prototype.requestForURL):
47022         * inspector/front-end/NetworkUISourceCodeProvider.js:
47023         (WebInspector.NetworkUISourceCodeProvider):
47024         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
47025         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
47026
47027 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
47028
47029         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
47030         https://bugs.webkit.org/show_bug.cgi?id=99311
47031
47032         Reviewed by Gustavo Noronha Silva.
47033
47034         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
47035         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
47036         using the soup timeout functionality.
47037         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
47038
47039         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
47040
47041         * platform/network/soup/ResourceHandleSoup.cpp:
47042         (WebCore::requestTimeoutCallback):
47043
47044 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
47045
47046         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
47047         https://bugs.webkit.org/show_bug.cgi?id=99309
47048
47049         Reviewed by Yury Semikhatsky.
47050
47051         JSHeap, DOMStorage and HeapProfiler data were counted manually.
47052         Now we count the sizes more generic way.
47053
47054         * dom/WebCoreMemoryInstrumentation.cpp:
47055         * dom/WebCoreMemoryInstrumentation.h:
47056         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
47057         * inspector/InspectorBaseAgent.cpp:
47058         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
47059         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
47060         * inspector/InspectorBaseAgent.h:
47061         (InspectorBaseAgentInterface): ditto
47062         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
47063         * inspector/InspectorController.cpp:
47064         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
47065         * inspector/InspectorController.h:
47066         * inspector/InspectorDOMStorageAgent.cpp:
47067         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47068         * inspector/InspectorDOMStorageAgent.h:
47069         * inspector/InspectorDOMStorageResource.cpp:
47070         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
47071         * inspector/InspectorDOMStorageResource.h:
47072         * inspector/InspectorMemoryAgent.cpp:
47073         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
47074         (WebCore::reportRenderTreeInfo):
47075         (WebCore::collectDomTreeInfo):
47076         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47077         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47078         * inspector/InspectorMemoryAgent.h:
47079         * inspector/InspectorProfilerAgent.cpp:
47080         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
47081         * inspector/InspectorProfilerAgent.h:
47082         (InspectorProfilerAgent): NMI instrumentation was added to the class.
47083         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
47084         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
47085         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47086         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47087         * inspector/MemoryInstrumentationImpl.h:
47088         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
47089         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
47090         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
47091         * inspector/front-end/NativeMemorySnapshotView.js:
47092         (WebInspector.MemoryBlockViewProperties._initialize):
47093         (WebInspector.NativeMemoryBarChart.prototype._updateView):
47094         * page/Page.cpp:
47095         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
47096         * page/Page.h:
47097
47098 2012-10-15  Kent Tamura  <tkent@chromium.org>
47099
47100         Improve code of LocaleMac.mm
47101         https://bugs.webkit.org/show_bug.cgi?id=98383
47102
47103         Reviewed by Darin Adler.
47104
47105         - Use isNull instead of isEmpty because isNull is more efficient.
47106         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47107         - Explicit String conversion is not needed.
47108
47109         No new tests. This doesn't change any behavior.
47110
47111         * platform/text/mac/LocaleMac.h:
47112         (LocaleMac):
47113         - Change the return types of createShortDateFormatter,
47114         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47115         to RetainPtr<NSDateFormatter>.
47116         - Omit 'create' from their names.
47117         - Add m_gregorianCalendar.
47118         * platform/text/mac/LocaleMac.mm:
47119         (WebCore::createDateTimeFormatter):
47120         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47121         Add an NSCalendar argument.
47122         (WebCore::LocaleMac::shortDateFormatter):
47123         Renamed from createShortTimeFormatter.
47124         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47125         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47126         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47127         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47128         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47129         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47130         (WebCore::LocaleMac::timeFormatter):
47131         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47132         Renamed from createTimeFormatter.
47133         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47134         (WebCore::LocaleMac::dateFormat):
47135         Use isNull. Remove explicit String construction. Follow the return type
47136         change and the renaming.
47137         (WebCore::LocaleMac::timeFormat): ditto.
47138         (WebCore::LocaleMac::shortTimeFormat): ditto.
47139         (WebCore::LocaleMac::timeAMPMLabels):
47140         Remove explicit String construction. Follow the return type change.
47141         (WebCore::LocaleMac::initializeLocalizerData):
47142         Remove explicit String construction.
47143
47144 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47145
47146         Web Inspector: NMI remove hand made object builders with automatic builder.
47147         https://bugs.webkit.org/show_bug.cgi?id=99186
47148
47149         Reviewed by Yury Semikhatsky.
47150
47151         Old builders were replaced with single automatic builder.
47152         It does the next things:
47153         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47154         b) creates parent entries and assigns their aggregated sizes;
47155         c) creates the hierarchy of MemoryBlocks recursively.
47156
47157         * dom/WebCoreMemoryInstrumentation.cpp:
47158         (WebCore):
47159         * dom/WebCoreMemoryInstrumentation.h:
47160         (WebCoreMemoryTypes):
47161         * inspector/InspectorMemoryAgent.cpp:
47162         (WebCore):
47163         (WebCore::jsHeapInfo):
47164         (WebCore::renderTreeInfo):
47165         (WebCore::addPlatformComponentsInfo):
47166         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47167         * inspector/MemoryInstrumentationImpl.cpp:
47168         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47169         (WebCore):
47170         * inspector/MemoryInstrumentationImpl.h:
47171         (WebCore):
47172         (MemoryInstrumentationClientImpl):
47173
47174 2012-10-14  Sam Weinig  <sam@webkit.org>
47175
47176         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47177         https://bugs.webkit.org/show_bug.cgi?id=99276
47178
47179         Reviewed by Anders Carlsson.
47180
47181         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47182
47183         * page/UserScript.h:
47184         (WebCore::UserScript::UserScript):
47185         (UserScript):
47186         * page/UserStyleSheet.h:
47187         (WebCore::UserStyleSheet::UserStyleSheet):
47188         (UserStyleSheet):
47189
47190 2012-10-14  Jon Lee  <jonlee@apple.com>
47191
47192         Allow notification origin permission request when no js callback is provided
47193         https://bugs.webkit.org/show_bug.cgi?id=63615
47194         <rdar://problem/11059590>
47195
47196         Reviewed by Sam Weinig.
47197
47198         Instead of throwing a type error when no callback is provided, we pass a null callback.
47199
47200         Test: http/tests/notifications/legacy/request-no-callback.html
47201
47202         * bindings/js/JSDesktopNotificationsCustom.cpp:
47203         (WebCore::JSNotificationCenter::requestPermission):
47204
47205 2012-10-12  Anders Carlsson  <andersca@apple.com>
47206
47207         Move QDataStream functions into HistoryItemQt.cpp
47208         https://bugs.webkit.org/show_bug.cgi?id=99203
47209
47210         Reviewed by Andreas Kling.
47211
47212         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47213         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47214         be moved into a separate header instead of polluting headers unnecessarily.
47215
47216         * history/qt/HistoryItemQt.cpp:
47217         (operator<<):
47218         (operator>>):
47219         * platform/FractionalLayoutUnit.h:
47220         * platform/graphics/IntPoint.h:
47221
47222 2012-10-14  Sam Weinig  <sam@webkit.org>
47223
47224         Make UserScript and UserStyleSheet value objects that are copyable
47225         https://bugs.webkit.org/show_bug.cgi?id=99275
47226
47227         Reviewed by Tim Horton.
47228
47229         Simplify UserScript and UserStyleSheet and make them more easily usable
47230         without sticking them in an OwnPtr.
47231
47232         * WebCore.exp.in:
47233         Update exports.
47234
47235         * page/PageGroup.cpp:
47236         (WebCore::PageGroup::addUserScriptToWorld):
47237         (WebCore::PageGroup::addUserStyleSheetToWorld):
47238         * page/PageGroup.h:
47239         (PageGroup):
47240         * page/UserContentURLPattern.cpp:
47241         (WebCore::UserContentURLPattern::matchesPatterns):
47242         * page/UserContentURLPattern.h:
47243         (UserContentURLPattern):
47244         Update to not assume whitelist and blacklist are in Vector<String>*.
47245
47246         * page/UserScript.h:
47247         (UserScript):
47248         (WebCore::UserScript::UserScript):
47249         (WebCore::UserScript::whitelist):
47250         (WebCore::UserScript::blacklist):
47251         * page/UserStyleSheet.h:
47252         (UserStyleSheet):
47253         (WebCore::UserStyleSheet::UserStyleSheet):
47254         (WebCore::UserStyleSheet::whitelist):
47255         (WebCore::UserStyleSheet::blacklist):
47256         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47257
47258 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47259
47260         [wk2] Implement PDFPlugin
47261         https://bugs.webkit.org/show_bug.cgi?id=99206
47262
47263         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47264
47265         * WebCore.exp.in:
47266
47267 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47268
47269         [wk2] Implement PDFPlugin
47270         https://bugs.webkit.org/show_bug.cgi?id=99206
47271
47272         Reviewed by Dan Bernstein.
47273
47274         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47275         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47276         in place of SimplePDFPlugin (née BuiltInPDFView).
47277
47278         * WebCore.exp.in:
47279         Export a few more methods to WebKit(2).
47280
47281         * WebCore.xcodeproj/project.pbxproj:
47282         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47283
47284         * platform/ScrollableArea.h:
47285         Make invalidateScrollbar/invalidateScrollCorner virtual.
47286
47287 2012-10-14  Antoine Quint  <graouts@apple.com>
47288
47289         InspectorPageAgent should expose a method to control the compositing debug settings.
47290         https://bugs.webkit.org/show_bug.cgi?id=99253
47291
47292         Reviewed by Timothy Hatcher.
47293
47294         * inspector/Inspector.json:
47295         * inspector/InspectorPageAgent.cpp:
47296         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47297         * inspector/InspectorPageAgent.h:
47298
47299 2012-10-13  Chris Rogers  <crogers@google.com>
47300
47301         WebAudioBus needs support for resizing bus to a smaller size
47302         https://bugs.webkit.org/show_bug.cgi?id=99215
47303
47304         Reviewed by Dimitri Glazkov.
47305
47306         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47307         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47308         until the entire file is decoded.
47309
47310         * platform/audio/AudioBus.cpp:
47311         (WebCore::AudioBus::resizeSmaller):
47312         (WebCore):
47313         * platform/audio/AudioBus.h:
47314         (AudioBus):
47315         * platform/audio/AudioChannel.cpp:
47316         (WebCore::AudioChannel::resizeSmaller):
47317         (WebCore):
47318         * platform/audio/AudioChannel.h:
47319         (AudioChannel):
47320         * platform/chromium/support/WebAudioBus.cpp:
47321         (WebKit::WebAudioBus::resizeSmaller):
47322         (WebKit):
47323
47324 2012-10-13  Gregg Tavares  <gman@google.com>
47325
47326         Add warning for unrenderable textures
47327         https://bugs.webkit.org/show_bug.cgi?id=99235
47328
47329         Reviewed by Kenneth Russell.
47330
47331         Unrenderable textures are often hard to debug. Adds a message to that
47332         appears in the JavaScript console to help developers find the issue.
47333
47334         No new tests as no new functionality.
47335
47336         * html/canvas/WebGLRenderingContext.cpp:
47337         (WebCore):
47338         (WebCore::WebGLRenderingContext::drawArrays):
47339         (WebCore::WebGLRenderingContext::drawElements):
47340         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47341         * html/canvas/WebGLRenderingContext.h:
47342         (WebGLRenderingContext):
47343
47344 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47345
47346         Not reviewed.
47347
47348         Updated bindings test results.
47349
47350         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47351         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47352
47353 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47354
47355         I pity da foo' who's converting numbers to strings
47356         https://bugs.webkit.org/show_bug.cgi?id=99197
47357
47358         Reviewed by Gavin Barraclough.
47359
47360         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47361         some other things up too.
47362
47363         Credit to Eric Seidel for spotting this.
47364
47365         * bindings/scripts/CodeGeneratorJS.pm:
47366         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47367         string lookup in the static table because our static tables don't contain
47368         properties that are numbers.
47369
47370         I believe this is low-hanging fruit left behind by Phil's
47371         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47372         regression at some point. I didn't check.
47373
47374 2012-10-13  Adam Barth  <abarth@webkit.org>
47375
47376         Remove dead code in Node.idl
47377         https://bugs.webkit.org/show_bug.cgi?id=99237
47378
47379         Reviewed by Maciej Stachowiak.
47380
47381         We don't implement this feature. This code is dead and should be
47382         removed.
47383
47384         * dom/Node.idl:
47385
47386 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47387
47388         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47389         https://bugs.webkit.org/show_bug.cgi?id=99212
47390
47391         Reviewed by Tim Horton.
47392
47393         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47394         and preserve-3d, so fix that, and add some tests.
47395         
47396         Perspective is implemented via childrenTransform(); if our parent has one,
47397         we have to left-multiply this into the transformation matrix.
47398         
47399         We have to test both this layer and its parent when deciding whether to accumulate
47400         or flatten.
47401         
47402         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47403         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47404         layers.
47405
47406         Tests: compositing/visible-rect/3d-transform-style.html
47407                compositing/visible-rect/3d-transformed.html
47408                compositing/visible-rect/nested-transform.html
47409
47410         * platform/graphics/ca/GraphicsLayerCA.cpp:
47411         (WebCore::GraphicsLayerCA::computeVisibleRect):
47412
47413 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47414
47415         Move TransformState code into its own member function, and remove a test that was prematurely added
47416         https://bugs.webkit.org/show_bug.cgi?id=99117
47417
47418         Reviewed by Tim Horton.
47419
47420         The code that manipulates the TransformState and computes the visible rect is going to get
47421         more complex, so move it into a new member function.
47422
47423         * platform/graphics/ca/GraphicsLayerCA.cpp:
47424         (WebCore::GraphicsLayerCA::computeVisibleRect):
47425         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47426         * platform/graphics/ca/GraphicsLayerCA.h:
47427         (GraphicsLayerCA):
47428
47429 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47430
47431         Add some initial visible rect tests and tweak the visible wash layer
47432         https://bugs.webkit.org/show_bug.cgi?id=99095
47433
47434         Reviewed by Tim Horton.
47435
47436         Make the m_visibleTileWashLayer more useful by showing it for all
47437         layers with transforms, not just tiled layers. This is a debugging
47438         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47439
47440         Tests: compositing/visible-rect/2d-transformed.html
47441                compositing/visible-rect/3d-transformed.html
47442                compositing/visible-rect/clipped-by-viewport copy.html
47443                compositing/visible-rect/clipped-by-viewport.html
47444                compositing/visible-rect/clipped-visible-rect.html
47445
47446         * platform/graphics/ca/GraphicsLayerCA.cpp:
47447         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47448         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47449         * platform/graphics/ca/GraphicsLayerCA.h:
47450
47451 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47452
47453         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47454         https://bugs.webkit.org/show_bug.cgi?id=99214
47455
47456         Reviewed by Kentaro Hara.
47457
47458         No new tests, updated the binding tests results.
47459
47460         * bindings/scripts/CodeGeneratorGObject.pm:
47461         (GenerateFunction):
47462         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47463         (webkit_dom_test_obj_orange):
47464
47465 2012-10-12  Beth Dakin  <bdakin@apple.com>
47466
47467         https://bugs.webkit.org/show_bug.cgi?id=99211
47468         When ScrollingStateNodes are destroyed, they should be removed 
47469         ScrollingCoordinator's HashMap
47470
47471         Reviewed by Sam Weinig.
47472
47473         This patch adds a new member variable to ScrollingStateTree. It's a 
47474         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47475         have been removed from the tree since the last time the tree was 
47476         committed.
47477         * page/scrolling/ScrollingStateTree.cpp:
47478         (WebCore::ScrollingStateTree::ScrollingStateTree):
47479
47480         When we do commit, copy the Vector over into the cloned tree, and 
47481         then clear our own Vector.
47482         (WebCore::ScrollingStateTree::commit):
47483
47484         Call didRemoveNode().
47485         (WebCore::ScrollingStateTree::removeNode):
47486
47487         Append the removed node's id to the vector.
47488         (WebCore::ScrollingStateTree::didRemoveNode):
47489         (WebCore):
47490         * page/scrolling/ScrollingStateTree.h:
47491         (ScrollingStateTree):
47492
47493         Call didRemoveNode().
47494         * page/scrolling/ScrollingStateNode.cpp:
47495         (WebCore::ScrollingStateNode::removeChild):
47496
47497         Fix the FIXME!
47498         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47499         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47500
47501 2012-10-12  Brady Eidson  <beidson@apple.com>
47502
47503         Setup basic NetworkProcess messaging and initialization.
47504         https://bugs.webkit.org/show_bug.cgi?id=99198
47505
47506         Reviewed by Sam Weinig.
47507
47508         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47509
47510 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47511
47512         Remove unnecessary mode identifiers added in r131111
47513         https://bugs.webkit.org/show_bug.cgi?id=99208
47514
47515         Reviewed by Emil A Eklund.
47516
47517         Removing unnecessary mode identifiers from coordinate conversion methods. These
47518         were added in http://trac.webkit.org/changeset/131111
47519
47520         No new tests. No change in behavior.
47521
47522         * rendering/RenderBox.h:
47523         (RenderBox):
47524         * rendering/RenderBoxModelObject.h:
47525         (RenderBoxModelObject):
47526         * rendering/RenderInline.h:
47527         (RenderInline):
47528         * rendering/RenderObject.h:
47529         (RenderObject):
47530         * rendering/RenderView.h:
47531         (RenderView):
47532         * rendering/svg/RenderSVGForeignObject.h:
47533         (RenderSVGForeignObject):
47534         * rendering/svg/RenderSVGInline.h:
47535         (RenderSVGInline):
47536         * rendering/svg/RenderSVGModelObject.h:
47537         (RenderSVGModelObject):
47538         * rendering/svg/RenderSVGRoot.h:
47539         (RenderSVGRoot):
47540         * rendering/svg/RenderSVGText.h:
47541         (RenderSVGText):
47542
47543 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47544
47545         Unreviewed, rolling out r131224.
47546         http://trac.webkit.org/changeset/131224
47547         https://bugs.webkit.org/show_bug.cgi?id=99210
47548
47549         It broke the build (Requested by andersca on #webkit).
47550
47551         * history/qt/HistoryItemQt.cpp:
47552         * platform/FractionalLayoutUnit.h:
47553         (WebCore):
47554         (WebCore::operator<<):
47555         (WebCore::operator>>):
47556         * platform/graphics/IntPoint.h:
47557         (WebCore):
47558         (WebCore::operator<<):
47559         (WebCore::operator>>):
47560
47561 2012-10-12  Anders Carlsson  <andersca@apple.com>
47562
47563         Move QDataStream functions into HistoryItemQt.cpp
47564         https://bugs.webkit.org/show_bug.cgi?id=99203
47565
47566         Reviewed by Andreas Kling.
47567
47568         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47569         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47570         be moved into a separate header instead of polluting headers unnecessarily.
47571
47572         * history/qt/HistoryItemQt.cpp:
47573         (operator<<):
47574         (operator>>):
47575         * platform/FractionalLayoutUnit.h:
47576         * platform/graphics/IntPoint.h:
47577
47578 2012-10-12  Beth Dakin  <bdakin@apple.com>
47579
47580         https://bugs.webkit.org/show_bug.cgi?id=99204
47581         ScrollingStateNodes should keep track of their IDs
47582
47583         Reviewed by Simon Fraser.
47584
47585         There is a HashMap in ScrollingCoordinatorMac that maps 
47586         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47587         keep track of this id. Then the id can be used to make sure 
47588         ScrollingStateNodes remove themselves from the HashMap when they are 
47589         destroyed, and it will also be useful for associating 
47590         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47591         thread.
47592   
47593         This patch only has the ScrollingStateNodes cache the id. I will 
47594         actually make use of the id in follow-up patches.
47595
47596         * page/scrolling/ScrollingStateNode.cpp:
47597         (WebCore::ScrollingStateNode::ScrollingStateNode):
47598         * page/scrolling/ScrollingStateNode.h:
47599         (ScrollingStateNode):
47600         (WebCore::ScrollingStateNode::scrollingNodeID):
47601         * page/scrolling/ScrollingStateScrollingNode.cpp:
47602         (WebCore::ScrollingStateScrollingNode::create):
47603         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47604         * page/scrolling/ScrollingStateScrollingNode.h:
47605         (ScrollingStateScrollingNode):
47606         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47607         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47608
47609 2012-10-01  Jer Noble  <jer.noble@apple.com>
47610
47611         Add LSKD support to MediaPlayerPrivateAVFoundation.
47612         https://bugs.webkit.org/show_bug.cgi?id=98090
47613
47614         Reviewed by Anders Carlsson.
47615
47616         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47617
47618         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47619         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47620         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47621         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47622         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47623         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47624         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47625         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47626         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47627             the key URI.
47628         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47629         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47630             fire a keymessage event.
47631         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47632         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47633         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47634         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47635
47636 2012-10-12  James Simonsen  <simonjam@chromium.org>
47637
47638         [RequestAnimationFrame] Remove vendor prefix
47639         https://bugs.webkit.org/show_bug.cgi?id=99116
47640
47641         Reviewed by Adam Barth.
47642
47643         Test: Existing rAF tests without prefix.
47644
47645         * dom/Document.cpp:
47646         (WebCore::Document::requestAnimationFrame):
47647         (WebCore::Document::cancelAnimationFrame):
47648         * dom/Document.h:
47649         (Document):
47650         * page/DOMWindow.cpp:
47651         (WebCore::DOMWindow::requestAnimationFrame):
47652         (WebCore::DOMWindow::cancelAnimationFrame):
47653         * page/DOMWindow.h:
47654         (DOMWindow):
47655         * page/DOMWindow.idl:
47656
47657 2012-10-12  Andreas Kling  <kling@webkit.org>
47658
47659         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47660         <http://webkit.org/b/98498>
47661         <rdar://problem/12443926>
47662
47663         Reviewed by Geöff Gären and Änders Cärlssön.
47664
47665         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47666         If the cache fills up, remove a random entry before inserting a new one.
47667
47668         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47669         caches to WebKit.
47670
47671         * dom/SelectorQuery.cpp:
47672         (WebCore::SelectorQueryCache::add):
47673
47674 2012-10-12  Roger Fong  <roger_fong@apple.com>
47675
47676         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47677         https://bugs.webkit.org/show_bug.cgi?id=99190
47678
47679         Reviewed by Simon Fraser.
47680
47681         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47682         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47683
47684         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47685         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47686
47687 2012-10-12  Scott Graham  <scottmg@chromium.org>
47688
47689         Local disable of stack corruption warning when compiling on VS2012
47690         https://bugs.webkit.org/show_bug.cgi?id=99106
47691
47692         Reviewed by Ryosuke Niwa.
47693
47694         Warning is:
47695
47696         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47697
47698         And similar at lines 281, 355, and 365. This appears to be incorrect
47699         as the writes at offset 12 occur only when preserveAlphaValues is
47700         false, and when it's false, totals will be 16 bytes long.
47701
47702         No new tests.
47703
47704         * platform/graphics/filters/FEConvolveMatrix.cpp:
47705         (WebCore):
47706
47707 2012-10-11  Emil A Eklund  <eae@chromium.org>
47708
47709         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47710         https://bugs.webkit.org/show_bug.cgi?id=99108
47711
47712         Reviewed by Levi Weintraub.
47713
47714         Change RenderBox::computePositionedLogicalHeightReplaced and
47715         computePositionedLogicalWidthReplaced to not round position.
47716
47717         Covered by existing tests.
47718
47719         * rendering/InlineFlowBox.cpp:
47720         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47721         Floor baselinePosition for replaced elements to match logic in
47722         RootInlineBox::ascentAndDescentForBox where the ascent is
47723         computed from the floored baselinePosition.
47724         
47725         * rendering/RenderBox.cpp:
47726         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47727         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47728         Remove .round() call for m_position, preserving precision.
47729
47730 2012-10-01  Jer Noble  <jer.noble@apple.com>
47731
47732         Enable ENCRYPTED_MEDIA support on Mac.
47733         https://bugs.webkit.org/show_bug.cgi?id=98044
47734
47735         Reviewed by Anders Carlsson.
47736
47737         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47738
47739         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47740
47741         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47742         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47743         * WebCore.xcodeproj/project.pbxproj: Ditto.
47744         * bindings/js/JSDictionary.cpp:
47745         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47746         * bindings/js/JSDictionary.h:
47747         * html/HTMLMediaElement.cpp:
47748         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47749             handler is registered.
47750         * html/HTMLMediaElement.h:
47751         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47752         * platform/graphics/MediaPlayer.cpp:
47753         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47754             due to a lack of "needkey" listener.
47755         * platform/graphics/MediaPlayer.h:
47756         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47757         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47758         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47759         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47760         * platform/graphics/MediaPlayerPrivate.h:
47761         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47762         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47763         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47764         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47765         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47766         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47767         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47768         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47769         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47770         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47771         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47772
47773 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47774
47775         Check parameter's safety first
47776         https://bugs.webkit.org/show_bug.cgi?id=99136
47777
47778         Reviewed by Chris Rogers.
47779
47780         Pointer parameter was used before NULL checking.
47781         This patch moves safety checking statements to the head of the function.
47782
47783         No new tests. No behavior change.
47784
47785         * platform/audio/AudioChannel.cpp:
47786         (WebCore::AudioChannel::copyFromRange):
47787         (WebCore::AudioChannel::sumFrom):
47788         * platform/audio/EqualPowerPanner.cpp:
47789         (WebCore::EqualPowerPanner::pan):
47790
47791 2012-10-12  Andreas Kling  <kling@webkit.org>
47792
47793         RenderBR should share its constant newline string between instances.
47794         <http://webkit.org/b/99121>
47795
47796         Reviewed by Anders Carlsson.
47797
47798         * rendering/RenderBR.cpp:
47799         (WebCore::newlineString):
47800         (WebCore::RenderBR::RenderBR):
47801
47802 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47803
47804         Web Inspector: [Styles] !important priority not honored inside the same declaration
47805         https://bugs.webkit.org/show_bug.cgi?id=99170
47806
47807         Reviewed by Yury Semikhatsky.
47808
47809         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47810         even if followed by non-!important properties with the same name.
47811
47812         * inspector/InspectorStyleSheet.cpp:
47813         (WebCore::InspectorStyle::styleWithProperties):
47814         * inspector/front-end/StylesSidebarPane.js:
47815         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47816         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47817
47818 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47819
47820         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47821         https://bugs.webkit.org/show_bug.cgi?id=99173
47822
47823         Reviewed by Vsevolod Vlasov.
47824
47825         Overwise we step too fast.
47826
47827         * inspector/front-end/inspector.js:
47828         (WebInspector._zoomIn):
47829         (WebInspector._zoomOut):
47830         (WebInspector):
47831
47832 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47833
47834         Web Inspector: move delete watch expression farther from the expand triangle
47835         https://bugs.webkit.org/show_bug.cgi?id=99166
47836
47837         Reviewed by Pavel Feldman.
47838
47839         Aligned 'delete watch expression' button on the right side (was on the left) so
47840         that it is hard to click it when expanding watched value.
47841
47842         * inspector/front-end/inspector.css:
47843         (.properties-tree.watch-expressions):
47844         (.section .properties .delete-button):
47845
47846 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47847
47848         Web Inspector: trim filename in the call stack sidebar
47849         https://bugs.webkit.org/show_bug.cgi?id=99169
47850
47851         Reviewed by Yury Semikhatsky.
47852
47853         Otherwise long file names are rendered poorly.
47854
47855         * inspector/front-end/CallStackSidebarPane.js:
47856         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47857         * inspector/front-end/inspector.css:
47858         (.placard .subtitle):
47859
47860 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47861
47862         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47863         https://bugs.webkit.org/show_bug.cgi?id=99165
47864
47865         Reviewed by Pavel Feldman.
47866
47867         Pause/resume button title is now updated when debugger is paused/resumed.
47868
47869         * English.lproj/localizedStrings.js:
47870         * inspector/front-end/ScriptsPanel.js:
47871         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47872         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47873         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47874         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47875
47876 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47877
47878         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47879
47880         * bindings/scripts/CodeGeneratorV8.pm:
47881         (GenerateConstructorGetter):
47882         * bindings/scripts/test/V8/V8TestObj.cpp:
47883         (WebCore):
47884         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47885         (WebCore::V8TestObj::installPerContextProperties):
47886         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47887         (WebCore::V8TestObj::wrapSlow):
47888         * bindings/scripts/test/V8/V8TestObj.h:
47889         (V8TestObj):
47890
47891 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47892
47893         Web Inspector: relies on current Function.prototype.bind in the frame
47894         https://bugs.webkit.org/show_bug.cgi?id=99164
47895
47896         Reviewed by Yury Semikhatsky.
47897
47898         InjectedScriptSource should not depend on the bind override.
47899
47900         Test: inspector/console/console-bind-fake.html
47901
47902         * inspector/InjectedScriptSource.js:
47903         (.):
47904
47905 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47906
47907         Web Inspector: [Styles] Colors should be "As authored" by default
47908         https://bugs.webkit.org/show_bug.cgi?id=99017
47909
47910         Reviewed by Vsevolod Vlasov.
47911
47912         Use "original" as the default value of WebInspector.settings.colorFormat.
47913
47914         * inspector/front-end/Settings.js:
47915
47916 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47917
47918         [WebKit IDL] move extended attributes to left of interface, exception...
47919         https://bugs.webkit.org/show_bug.cgi?id=99012
47920
47921         Reviewed by Kentaro Hara.
47922
47923         According to WebIDL spec, moved all extended attributes to the left
47924         of interface / attribute / readonly attribute / exception.
47925
47926         No new tests. I ran run-bindings-tests and all tests passed.
47927
47928         * Modules/battery/BatteryManager.idl:
47929         * Modules/battery/NavigatorBattery.idl:
47930         * Modules/filesystem/DOMFileSystem.idl:
47931         * Modules/filesystem/DOMFileSystemSync.idl:
47932         * Modules/filesystem/DOMWindowFileSystem.idl:
47933         * Modules/filesystem/DataTransferItemFileSystem.idl:
47934         * Modules/filesystem/DirectoryEntry.idl:
47935         * Modules/filesystem/DirectoryEntrySync.idl:
47936         * Modules/filesystem/DirectoryReader.idl:
47937         * Modules/filesystem/DirectoryReaderSync.idl:
47938         * Modules/filesystem/EntriesCallback.idl:
47939         * Modules/filesystem/Entry.idl:
47940         * Modules/filesystem/EntryArray.idl:
47941         * Modules/filesystem/EntryArraySync.idl:
47942         * Modules/filesystem/EntryCallback.idl:
47943         * Modules/filesystem/EntrySync.idl:
47944         * Modules/filesystem/ErrorCallback.idl:
47945         * Modules/filesystem/FileCallback.idl:
47946         * Modules/filesystem/FileEntry.idl:
47947         * Modules/filesystem/FileEntrySync.idl:
47948         * Modules/filesystem/FileSystemCallback.idl:
47949         * Modules/filesystem/FileWriter.idl:
47950         * Modules/filesystem/FileWriterCallback.idl:
47951         * Modules/filesystem/FileWriterSync.idl:
47952         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47953         * Modules/filesystem/Metadata.idl:
47954         * Modules/filesystem/MetadataCallback.idl:
47955         * Modules/filesystem/WorkerContextFileSystem.idl:
47956         * Modules/gamepad/Gamepad.idl:
47957         * Modules/gamepad/GamepadList.idl:
47958         * Modules/gamepad/NavigatorGamepad.idl:
47959         * Modules/geolocation/Geolocation.idl:
47960         * Modules/geolocation/Geoposition.idl:
47961         * Modules/geolocation/NavigatorGeolocation.idl:
47962         * Modules/geolocation/PositionCallback.idl:
47963         * Modules/geolocation/PositionError.idl:
47964         * Modules/geolocation/PositionErrorCallback.idl:
47965         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
47966         * Modules/indexeddb/IDBAny.idl:
47967         * Modules/indexeddb/IDBCursor.idl:
47968         * Modules/indexeddb/IDBCursorWithValue.idl:
47969         * Modules/indexeddb/IDBDatabase.idl:
47970         * Modules/indexeddb/IDBDatabaseException.idl:
47971         * Modules/indexeddb/IDBFactory.idl:
47972         * Modules/indexeddb/IDBIndex.idl:
47973         * Modules/indexeddb/IDBKey.idl:
47974         * Modules/indexeddb/IDBKeyRange.idl:
47975         * Modules/indexeddb/IDBObjectStore.idl:
47976         * Modules/indexeddb/IDBOpenDBRequest.idl:
47977         * Modules/indexeddb/IDBRequest.idl:
47978         * Modules/indexeddb/IDBTransaction.idl:
47979         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
47980         * Modules/indexeddb/IDBVersionChangeEvent.idl:
47981         * Modules/indexeddb/IDBVersionChangeRequest.idl:
47982         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
47983         * Modules/intents/DOMWindowIntents.idl:
47984         * Modules/intents/DeliveredIntent.idl:
47985         * Modules/intents/NavigatorIntents.idl:
47986         * Modules/mediasource/MediaSource.idl:
47987         * Modules/mediasource/SourceBuffer.idl:
47988         * Modules/mediasource/SourceBufferList.idl:
47989         * Modules/mediastream/DOMWindowMediaStream.idl:
47990         * Modules/mediastream/IceCallback.idl:
47991         * Modules/mediastream/IceCandidate.idl:
47992         * Modules/mediastream/LocalMediaStream.idl:
47993         * Modules/mediastream/MediaStream.idl:
47994         * Modules/mediastream/MediaStreamEvent.idl:
47995         * Modules/mediastream/MediaStreamList.idl:
47996         * Modules/mediastream/MediaStreamTrack.idl:
47997         * Modules/mediastream/MediaStreamTrackEvent.idl:
47998         * Modules/mediastream/MediaStreamTrackList.idl:
47999         * Modules/mediastream/NavigatorMediaStream.idl:
48000         * Modules/mediastream/NavigatorUserMediaError.idl:
48001         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48002         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48003         * Modules/mediastream/PeerConnection00.idl:
48004         * Modules/mediastream/RTCErrorCallback.idl:
48005         * Modules/mediastream/RTCIceCandidate.idl:
48006         * Modules/mediastream/RTCIceCandidateEvent.idl:
48007         * Modules/mediastream/RTCPeerConnection.idl:
48008         * Modules/mediastream/RTCSessionDescription.idl:
48009         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48010         * Modules/mediastream/RTCStatsCallback.idl:
48011         * Modules/mediastream/RTCStatsElement.idl:
48012         * Modules/mediastream/RTCStatsReport.idl:
48013         * Modules/mediastream/RTCStatsResponse.idl:
48014         * Modules/mediastream/SessionDescription.idl:
48015         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
48016         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
48017         * Modules/networkinfo/NetworkInfoConnection.idl:
48018         * Modules/notifications/DOMWindowNotifications.idl:
48019         * Modules/notifications/Notification.idl:
48020         * Modules/notifications/NotificationCenter.idl:
48021         * Modules/notifications/NotificationPermissionCallback.idl:
48022         * Modules/notifications/WorkerContextNotifications.idl:
48023         * Modules/proximity/DeviceProximityEvent.idl:
48024         * Modules/quota/DOMWindowQuota.idl:
48025         * Modules/quota/StorageInfo.idl:
48026         * Modules/quota/StorageInfoErrorCallback.idl:
48027         * Modules/quota/StorageInfoQuotaCallback.idl:
48028         * Modules/quota/StorageInfoUsageCallback.idl:
48029         * Modules/speech/DOMWindowSpeech.idl:
48030         * Modules/speech/SpeechGrammar.idl:
48031         * Modules/speech/SpeechGrammarList.idl:
48032         * Modules/speech/SpeechRecognition.idl:
48033         * Modules/speech/SpeechRecognitionAlternative.idl:
48034         * Modules/speech/SpeechRecognitionError.idl:
48035         * Modules/speech/SpeechRecognitionEvent.idl:
48036         * Modules/speech/SpeechRecognitionResult.idl:
48037         * Modules/speech/SpeechRecognitionResultList.idl:
48038         * Modules/vibration/NavigatorVibration.idl:
48039         * Modules/webaudio/AudioBuffer.idl:
48040         * Modules/webaudio/AudioBufferCallback.idl:
48041         * Modules/webaudio/AudioBufferSourceNode.idl:
48042         * Modules/webaudio/AudioChannelMerger.idl:
48043         * Modules/webaudio/AudioChannelSplitter.idl:
48044         * Modules/webaudio/AudioContext.idl:
48045         * Modules/webaudio/AudioDestinationNode.idl:
48046         * Modules/webaudio/AudioGain.idl:
48047         * Modules/webaudio/AudioGainNode.idl:
48048         * Modules/webaudio/AudioListener.idl:
48049         * Modules/webaudio/AudioNode.idl:
48050         * Modules/webaudio/AudioPannerNode.idl:
48051         * Modules/webaudio/AudioParam.idl:
48052         * Modules/webaudio/AudioProcessingEvent.idl:
48053         * Modules/webaudio/AudioSourceNode.idl:
48054         * Modules/webaudio/BiquadFilterNode.idl:
48055         * Modules/webaudio/ConvolverNode.idl:
48056         * Modules/webaudio/DOMWindowWebAudio.idl:
48057         * Modules/webaudio/DelayNode.idl:
48058         * Modules/webaudio/DynamicsCompressorNode.idl:
48059         * Modules/webaudio/JavaScriptAudioNode.idl:
48060         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48061         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
48062         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
48063         * Modules/webaudio/Oscillator.idl:
48064         * Modules/webaudio/RealtimeAnalyserNode.idl:
48065         * Modules/webaudio/WaveShaperNode.idl:
48066         * Modules/webaudio/WaveTable.idl:
48067         * Modules/webdatabase/DOMWindowWebDatabase.idl:
48068         * Modules/webdatabase/Database.idl:
48069         * Modules/webdatabase/DatabaseCallback.idl:
48070         * Modules/webdatabase/DatabaseSync.idl:
48071         * Modules/webdatabase/SQLError.idl:
48072         * Modules/webdatabase/SQLException.idl:
48073         * Modules/webdatabase/SQLResultSet.idl:
48074         * Modules/webdatabase/SQLResultSetRowList.idl:
48075         * Modules/webdatabase/SQLStatementCallback.idl:
48076         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48077         * Modules/webdatabase/SQLTransaction.idl:
48078         * Modules/webdatabase/SQLTransactionCallback.idl:
48079         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48080         * Modules/webdatabase/SQLTransactionSync.idl:
48081         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48082         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48083         * Modules/websockets/CloseEvent.idl:
48084         * Modules/websockets/DOMWindowWebSocket.idl:
48085         * Modules/websockets/WebSocket.idl:
48086         * Modules/websockets/WorkerContextWebSocket.idl:
48087         * bindings/scripts/test/TestCallback.idl:
48088         * bindings/scripts/test/TestCustomNamedGetter.idl:
48089         * bindings/scripts/test/TestDomainSecurity.idl:
48090         * bindings/scripts/test/TestEventConstructor.idl:
48091         * bindings/scripts/test/TestEventTarget.idl:
48092         * bindings/scripts/test/TestInterface.idl:
48093         * bindings/scripts/test/TestNamedConstructor.idl:
48094         * bindings/scripts/test/TestNode.idl:
48095         * bindings/scripts/test/TestObj.idl:
48096         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
48097         * bindings/scripts/test/TestSupplemental.idl:
48098         * bindings/scripts/test/TestTypedArray.idl:
48099         * css/CSSCharsetRule.idl:
48100         * css/CSSImportRule.idl:
48101         * css/CSSPageRule.idl:
48102         * css/CSSRule.idl:
48103         * css/CSSRuleList.idl:
48104         * css/CSSStyleDeclaration.idl:
48105         * css/CSSStyleRule.idl:
48106         * css/CSSStyleSheet.idl:
48107         * css/CSSUnknownRule.idl:
48108         * css/CSSValue.idl:
48109         * css/CSSValueList.idl:
48110         * css/MediaList.idl:
48111         * css/MediaQueryListListener.idl:
48112         * css/StyleMedia.idl:
48113         * css/StyleSheet.idl:
48114         * css/StyleSheetList.idl:
48115         * css/WebKitCSSFilterValue.idl:
48116         * css/WebKitCSSKeyframesRule.idl:
48117         * css/WebKitCSSMatrix.idl:
48118         * css/WebKitCSSRegionRule.idl:
48119         * css/WebKitCSSTransformValue.idl:
48120         * dom/Attr.idl:
48121         * dom/BeforeLoadEvent.idl:
48122         * dom/CharacterData.idl:
48123         * dom/ClientRectList.idl:
48124         * dom/Clipboard.idl:
48125         * dom/CustomEvent.idl:
48126         * dom/DOMCoreException.idl:
48127         * dom/DOMImplementation.idl:
48128         * dom/DOMNamedFlowCollection.idl:
48129         * dom/DOMStringList.idl:
48130         * dom/DOMStringMap.idl:
48131         * dom/DataTransferItem.idl:
48132         * dom/DataTransferItemList.idl:
48133         * dom/DeviceMotionEvent.idl:
48134         * dom/DeviceOrientationEvent.idl:
48135         * dom/Document.idl:
48136         * dom/DocumentType.idl:
48137         * dom/Element.idl:
48138         * dom/Entity.idl:
48139         * dom/ErrorEvent.idl:
48140         * dom/Event.idl:
48141         * dom/EventException.idl:
48142         * dom/EventListener.idl:
48143         * dom/EventTarget.idl:
48144         * dom/HashChangeEvent.idl:
48145         * dom/MessageChannel.idl:
48146         * dom/MessageEvent.idl:
48147         * dom/MessagePort.idl:
48148         * dom/MouseEvent.idl:
48149         * dom/MutationCallback.idl:
48150         * dom/MutationObserver.idl:
48151         * dom/MutationRecord.idl:
48152         * dom/NamedNodeMap.idl:
48153         * dom/Node.idl:
48154         * dom/NodeFilter.idl:
48155         * dom/NodeIterator.idl:
48156         * dom/NodeList.idl:
48157         * dom/Notation.idl:
48158         * dom/OverflowEvent.idl:
48159         * dom/PageTransitionEvent.idl:
48160         * dom/PopStateEvent.idl:
48161         * dom/ProcessingInstruction.idl:
48162         * dom/ProgressEvent.idl:
48163         * dom/PropertyNodeList.idl:
48164         * dom/RangeException.idl:
48165         * dom/RequestAnimationFrameCallback.idl:
48166         * dom/ShadowRoot.idl:
48167         * dom/StringCallback.idl:
48168         * dom/Touch.idl:
48169         * dom/TouchEvent.idl:
48170         * dom/TouchList.idl:
48171         * dom/TreeWalker.idl:
48172         * dom/WebKitAnimationEvent.idl:
48173         * dom/WebKitNamedFlow.idl:
48174         * dom/WebKitTransitionEvent.idl:
48175         * editing/DOMTransaction.idl:
48176         * editing/UndoManager.idl:
48177         * fileapi/Blob.idl:
48178         * fileapi/File.idl:
48179         * fileapi/FileError.idl:
48180         * fileapi/FileException.idl:
48181         * fileapi/FileList.idl:
48182         * fileapi/FileReader.idl:
48183         * fileapi/FileReaderSync.idl:
48184         * html/DOMFormData.idl:
48185         * html/DOMSettableTokenList.idl:
48186         * html/DOMTokenList.idl:
48187         * html/DOMURL.idl:
48188         * html/HTMLAllCollection.idl:
48189         * html/HTMLAnchorElement.idl:
48190         * html/HTMLAppletElement.idl:
48191         * html/HTMLAreaElement.idl:
48192         * html/HTMLAudioElement.idl:
48193         * html/HTMLBRElement.idl:
48194         * html/HTMLBaseElement.idl:
48195         * html/HTMLBaseFontElement.idl:
48196         * html/HTMLBodyElement.idl:
48197         * html/HTMLButtonElement.idl:
48198         * html/HTMLCanvasElement.idl:
48199         * html/HTMLCollection.idl:
48200         * html/HTMLDListElement.idl:
48201         * html/HTMLDataListElement.idl:
48202         * html/HTMLDetailsElement.idl:
48203         * html/HTMLDialogElement.idl:
48204         * html/HTMLDirectoryElement.idl:
48205         * html/HTMLDivElement.idl:
48206         * html/HTMLDocument.idl:
48207         * html/HTMLElement.idl:
48208         * html/HTMLEmbedElement.idl:
48209         * html/HTMLFieldSetElement.idl:
48210         * html/HTMLFontElement.idl:
48211         * html/HTMLFormElement.idl:
48212         * html/HTMLFrameElement.idl:
48213         * html/HTMLFrameSetElement.idl:
48214         * html/HTMLHRElement.idl:
48215         * html/HTMLHeadElement.idl:
48216         * html/HTMLHeadingElement.idl:
48217         * html/HTMLHtmlElement.idl:
48218         * html/HTMLIFrameElement.idl:
48219         * html/HTMLImageElement.idl:
48220         * html/HTMLInputElement.idl:
48221         * html/HTMLIntentElement.idl:
48222         * html/HTMLKeygenElement.idl:
48223         * html/HTMLLIElement.idl:
48224         * html/HTMLLabelElement.idl:
48225         * html/HTMLLegendElement.idl:
48226         * html/HTMLLinkElement.idl:
48227         * html/HTMLMapElement.idl:
48228         * html/HTMLMarqueeElement.idl:
48229         * html/HTMLMediaElement.idl:
48230         * html/HTMLMenuElement.idl:
48231         * html/HTMLMetaElement.idl:
48232         * html/HTMLMeterElement.idl:
48233         * html/HTMLModElement.idl:
48234         * html/HTMLOListElement.idl:
48235         * html/HTMLObjectElement.idl:
48236         * html/HTMLOptGroupElement.idl:
48237         * html/HTMLOptionElement.idl:
48238         * html/HTMLOptionsCollection.idl:
48239         * html/HTMLOutputElement.idl:
48240         * html/HTMLParagraphElement.idl:
48241         * html/HTMLParamElement.idl:
48242         * html/HTMLPreElement.idl:
48243         * html/HTMLProgressElement.idl:
48244         * html/HTMLPropertiesCollection.idl:
48245         * html/HTMLQuoteElement.idl:
48246         * html/HTMLScriptElement.idl:
48247         * html/HTMLSelectElement.idl:
48248         * html/HTMLSourceElement.idl:
48249         * html/HTMLStyleElement.idl:
48250         * html/HTMLTableCaptionElement.idl:
48251         * html/HTMLTableCellElement.idl:
48252         * html/HTMLTableColElement.idl:
48253         * html/HTMLTableElement.idl:
48254         * html/HTMLTableRowElement.idl:
48255         * html/HTMLTableSectionElement.idl:
48256         * html/HTMLTextAreaElement.idl:
48257         * html/HTMLTitleElement.idl:
48258         * html/HTMLTrackElement.idl:
48259         * html/HTMLUListElement.idl:
48260         * html/HTMLVideoElement.idl:
48261         * html/ImageData.idl:
48262         * html/MediaController.idl:
48263         * html/MediaError.idl:
48264         * html/MediaKeyError.idl:
48265         * html/MediaKeyEvent.idl:
48266         * html/MicroDataItemValue.idl:
48267         * html/RadioNodeList.idl:
48268         * html/TimeRanges.idl:
48269         * html/ValidityState.idl:
48270         * html/VoidCallback.idl:
48271         * html/canvas/ArrayBuffer.idl:
48272         * html/canvas/ArrayBufferView.idl:
48273         * html/canvas/CanvasRenderingContext.idl:
48274         * html/canvas/CanvasRenderingContext2D.idl:
48275         * html/canvas/DataView.idl:
48276         * html/canvas/EXTTextureFilterAnisotropic.idl:
48277         * html/canvas/Float32Array.idl:
48278         * html/canvas/Float64Array.idl:
48279         * html/canvas/Int16Array.idl:
48280         * html/canvas/Int32Array.idl:
48281         * html/canvas/Int8Array.idl:
48282         * html/canvas/OESStandardDerivatives.idl:
48283         * html/canvas/OESTextureFloat.idl:
48284         * html/canvas/OESVertexArrayObject.idl:
48285         * html/canvas/Uint16Array.idl:
48286         * html/canvas/Uint32Array.idl:
48287         * html/canvas/Uint8Array.idl:
48288         * html/canvas/Uint8ClampedArray.idl:
48289         * html/canvas/WebGLActiveInfo.idl:
48290         * html/canvas/WebGLBuffer.idl:
48291         * html/canvas/WebGLCompressedTextureS3TC.idl:
48292         * html/canvas/WebGLContextAttributes.idl:
48293         * html/canvas/WebGLContextEvent.idl:
48294         * html/canvas/WebGLDebugRendererInfo.idl:
48295         * html/canvas/WebGLDebugShaders.idl:
48296         * html/canvas/WebGLDepthTexture.idl:
48297         * html/canvas/WebGLFramebuffer.idl:
48298         * html/canvas/WebGLLoseContext.idl:
48299         * html/canvas/WebGLProgram.idl:
48300         * html/canvas/WebGLRenderbuffer.idl:
48301         * html/canvas/WebGLRenderingContext.idl:
48302         * html/canvas/WebGLShader.idl:
48303         * html/canvas/WebGLShaderPrecisionFormat.idl:
48304         * html/canvas/WebGLTexture.idl:
48305         * html/canvas/WebGLUniformLocation.idl:
48306         * html/canvas/WebGLVertexArrayObjectOES.idl:
48307         * html/shadow/HTMLContentElement.idl:
48308         * html/shadow/HTMLShadowElement.idl:
48309         * html/track/TextTrack.idl:
48310         * html/track/TextTrackCue.idl:
48311         * html/track/TextTrackCueList.idl:
48312         * html/track/TextTrackList.idl:
48313         * html/track/TrackEvent.idl:
48314         * inspector/InjectedScriptHost.idl:
48315         * inspector/InspectorFrontendHost.idl:
48316         * inspector/JavaScriptCallFrame.idl:
48317         * inspector/ScriptProfile.idl:
48318         * inspector/ScriptProfileNode.idl:
48319         * loader/appcache/DOMApplicationCache.idl:
48320         * page/AbstractView.idl:
48321         * page/BarInfo.idl:
48322         * page/Console.idl:
48323         * page/Coordinates.idl:
48324         * page/Crypto.idl:
48325         * page/DOMSecurityPolicy.idl:
48326         * page/DOMSelection.idl:
48327         * page/DOMWindow.idl:
48328         * page/DOMWindowPagePopup.idl:
48329         * page/EventSource.idl:
48330         * page/History.idl:
48331         * page/Location.idl:
48332         * page/MemoryInfo.idl:
48333         * page/Navigator.idl:
48334         * page/PagePopupController.idl:
48335         * page/Performance.idl:
48336         * page/PerformanceEntry.idl:
48337         * page/PerformanceEntryList.idl:
48338         * page/PerformanceNavigation.idl:
48339         * page/PerformanceResourceTiming.idl:
48340         * page/PerformanceTiming.idl:
48341         * page/Screen.idl:
48342         * page/SpeechInputEvent.idl:
48343         * page/SpeechInputResult.idl:
48344         * page/SpeechInputResultList.idl:
48345         * page/WebKitAnimation.idl:
48346         * page/WebKitAnimationList.idl:
48347         * page/WebKitPoint.idl:
48348         * page/WorkerNavigator.idl:
48349         * plugins/DOMMimeType.idl:
48350         * plugins/DOMMimeTypeArray.idl:
48351         * plugins/DOMPlugin.idl:
48352         * plugins/DOMPluginArray.idl:
48353         * storage/Storage.idl:
48354         * storage/StorageEvent.idl:
48355         * svg/ElementTimeControl.idl:
48356         * svg/SVGAElement.idl:
48357         * svg/SVGAltGlyphDefElement.idl:
48358         * svg/SVGAltGlyphElement.idl:
48359         * svg/SVGAltGlyphItemElement.idl:
48360         * svg/SVGAngle.idl:
48361         * svg/SVGAnimateColorElement.idl:
48362         * svg/SVGAnimateElement.idl:
48363         * svg/SVGAnimateMotionElement.idl:
48364         * svg/SVGAnimateTransformElement.idl:
48365         * svg/SVGAnimatedAngle.idl:
48366         * svg/SVGAnimatedBoolean.idl:
48367         * svg/SVGAnimatedEnumeration.idl:
48368         * svg/SVGAnimatedInteger.idl:
48369         * svg/SVGAnimatedLength.idl:
48370         * svg/SVGAnimatedLengthList.idl:
48371         * svg/SVGAnimatedNumber.idl:
48372         * svg/SVGAnimatedNumberList.idl:
48373         * svg/SVGAnimatedPreserveAspectRatio.idl:
48374         * svg/SVGAnimatedRect.idl:
48375         * svg/SVGAnimatedString.idl:
48376         * svg/SVGAnimatedTransformList.idl:
48377         * svg/SVGAnimationElement.idl:
48378         * svg/SVGCircleElement.idl:
48379         * svg/SVGClipPathElement.idl:
48380         * svg/SVGColor.idl:
48381         * svg/SVGComponentTransferFunctionElement.idl:
48382         * svg/SVGCursorElement.idl:
48383         * svg/SVGDefsElement.idl:
48384         * svg/SVGDescElement.idl:
48385         * svg/SVGDocument.idl:
48386         * svg/SVGElement.idl:
48387         * svg/SVGElementInstance.idl:
48388         * svg/SVGElementInstanceList.idl:
48389         * svg/SVGEllipseElement.idl:
48390         * svg/SVGException.idl:
48391         * svg/SVGExternalResourcesRequired.idl:
48392         * svg/SVGFEBlendElement.idl:
48393         * svg/SVGFEColorMatrixElement.idl:
48394         * svg/SVGFEComponentTransferElement.idl:
48395         * svg/SVGFECompositeElement.idl:
48396         * svg/SVGFEConvolveMatrixElement.idl:
48397         * svg/SVGFEDiffuseLightingElement.idl:
48398         * svg/SVGFEDisplacementMapElement.idl:
48399         * svg/SVGFEDistantLightElement.idl:
48400         * svg/SVGFEDropShadowElement.idl:
48401         * svg/SVGFEFloodElement.idl:
48402         * svg/SVGFEFuncAElement.idl:
48403         * svg/SVGFEFuncBElement.idl:
48404         * svg/SVGFEFuncGElement.idl:
48405         * svg/SVGFEFuncRElement.idl:
48406         * svg/SVGFEGaussianBlurElement.idl:
48407         * svg/SVGFEImageElement.idl:
48408         * svg/SVGFEMergeElement.idl:
48409         * svg/SVGFEMergeNodeElement.idl:
48410         * svg/SVGFEMorphologyElement.idl:
48411         * svg/SVGFEOffsetElement.idl:
48412         * svg/SVGFEPointLightElement.idl:
48413         * svg/SVGFESpecularLightingElement.idl:
48414         * svg/SVGFESpotLightElement.idl:
48415         * svg/SVGFETileElement.idl:
48416         * svg/SVGFETurbulenceElement.idl:
48417         * svg/SVGFilterElement.idl:
48418         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48419         * svg/SVGFitToViewBox.idl:
48420         * svg/SVGFontElement.idl:
48421         * svg/SVGFontFaceElement.idl:
48422         * svg/SVGFontFaceFormatElement.idl:
48423         * svg/SVGFontFaceNameElement.idl:
48424         * svg/SVGFontFaceSrcElement.idl:
48425         * svg/SVGFontFaceUriElement.idl:
48426         * svg/SVGForeignObjectElement.idl:
48427         * svg/SVGGElement.idl:
48428         * svg/SVGGlyphElement.idl:
48429         * svg/SVGGlyphRefElement.idl:
48430         * svg/SVGGradientElement.idl:
48431         * svg/SVGHKernElement.idl:
48432         * svg/SVGImageElement.idl:
48433         * svg/SVGLangSpace.idl:
48434         * svg/SVGLength.idl:
48435         * svg/SVGLengthList.idl:
48436         * svg/SVGLineElement.idl:
48437         * svg/SVGLinearGradientElement.idl:
48438         * svg/SVGLocatable.idl:
48439         * svg/SVGMPathElement.idl:
48440         * svg/SVGMarkerElement.idl:
48441         * svg/SVGMaskElement.idl:
48442         * svg/SVGMatrix.idl:
48443         * svg/SVGMetadataElement.idl:
48444         * svg/SVGMissingGlyphElement.idl:
48445         * svg/SVGNumber.idl:
48446         * svg/SVGNumberList.idl:
48447         * svg/SVGPaint.idl:
48448         * svg/SVGPathElement.idl:
48449         * svg/SVGPathSeg.idl:
48450         * svg/SVGPathSegArcAbs.idl:
48451         * svg/SVGPathSegArcRel.idl:
48452         * svg/SVGPathSegClosePath.idl:
48453         * svg/SVGPathSegCurvetoCubicAbs.idl:
48454         * svg/SVGPathSegCurvetoCubicRel.idl:
48455         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48456         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48457         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48458         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48459         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48460         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48461         * svg/SVGPathSegLinetoAbs.idl:
48462         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48463         * svg/SVGPathSegLinetoHorizontalRel.idl:
48464         * svg/SVGPathSegLinetoRel.idl:
48465         * svg/SVGPathSegLinetoVerticalAbs.idl:
48466         * svg/SVGPathSegLinetoVerticalRel.idl:
48467         * svg/SVGPathSegList.idl:
48468         * svg/SVGPathSegMovetoAbs.idl:
48469         * svg/SVGPathSegMovetoRel.idl:
48470         * svg/SVGPatternElement.idl:
48471         * svg/SVGPoint.idl:
48472         * svg/SVGPointList.idl:
48473         * svg/SVGPolygonElement.idl:
48474         * svg/SVGPolylineElement.idl:
48475         * svg/SVGPreserveAspectRatio.idl:
48476         * svg/SVGRadialGradientElement.idl:
48477         * svg/SVGRect.idl:
48478         * svg/SVGRectElement.idl:
48479         * svg/SVGRenderingIntent.idl:
48480         * svg/SVGSVGElement.idl:
48481         * svg/SVGScriptElement.idl:
48482         * svg/SVGSetElement.idl:
48483         * svg/SVGStopElement.idl:
48484         * svg/SVGStringList.idl:
48485         * svg/SVGStylable.idl:
48486         * svg/SVGStyleElement.idl:
48487         * svg/SVGSwitchElement.idl:
48488         * svg/SVGSymbolElement.idl:
48489         * svg/SVGTRefElement.idl:
48490         * svg/SVGTSpanElement.idl:
48491         * svg/SVGTests.idl:
48492         * svg/SVGTextContentElement.idl:
48493         * svg/SVGTextElement.idl:
48494         * svg/SVGTextPathElement.idl:
48495         * svg/SVGTextPositioningElement.idl:
48496         * svg/SVGTitleElement.idl:
48497         * svg/SVGTransform.idl:
48498         * svg/SVGTransformList.idl:
48499         * svg/SVGTransformable.idl:
48500         * svg/SVGURIReference.idl:
48501         * svg/SVGUnitTypes.idl:
48502         * svg/SVGUseElement.idl:
48503         * svg/SVGVKernElement.idl:
48504         * svg/SVGViewElement.idl:
48505         * svg/SVGViewSpec.idl:
48506         * svg/SVGZoomAndPan.idl:
48507         * svg/SVGZoomEvent.idl:
48508         * testing/InternalSettings.idl:
48509         * testing/Internals.idl:
48510         * testing/MallocStatistics.idl:
48511         * workers/AbstractWorker.idl:
48512         * workers/DedicatedWorkerContext.idl:
48513         * workers/SharedWorker.idl:
48514         * workers/SharedWorkerContext.idl:
48515         * workers/Worker.idl:
48516         * workers/WorkerContext.idl:
48517         * workers/WorkerLocation.idl:
48518         * xml/DOMParser.idl:
48519         * xml/XMLHttpRequest.idl:
48520         * xml/XMLHttpRequestException.idl:
48521         * xml/XMLHttpRequestProgressEvent.idl:
48522         * xml/XMLHttpRequestUpload.idl:
48523         * xml/XMLSerializer.idl:
48524         * xml/XPathEvaluator.idl:
48525         * xml/XPathException.idl:
48526         * xml/XPathNSResolver.idl:
48527         * xml/XPathResult.idl:
48528         * xml/XSLTProcessor.idl:
48529         Moved extended attributes.
48530
48531 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48532
48533         Web Inspector: never expand global scope automatically
48534         https://bugs.webkit.org/show_bug.cgi?id=99159
48535
48536         Reviewed by Vsevolod Vlasov.
48537
48538         Otherwise, stepping is slow.
48539
48540         * inspector/front-end/ScopeChainSidebarPane.js:
48541         (WebInspector.ScopeChainSidebarPane.prototype.update):
48542
48543 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48544
48545         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48546         https://bugs.webkit.org/show_bug.cgi?id=98911
48547
48548         Reviewed by Pavel Feldman.
48549
48550         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48551         WorkingCopyChanged event was dispatched when working copy was set.
48552         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48553         No events are dispatched now during revisions restoring.
48554         Reverting to revisions is now implemented based on the working copy editing.
48555
48556         * inspector/front-end/JavaScriptSourceFrame.js:
48557         (WebInspector.JavaScriptSourceFrame):
48558         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48559         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48560         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48561         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48562         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48563         * inspector/front-end/NavigatorView.js:
48564         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48565         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48566         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48567         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48568         * inspector/front-end/TabbedEditorContainer.js:
48569         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48570         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48571         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48572         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48573         * inspector/front-end/UISourceCode.js:
48574         (WebInspector.UISourceCode):
48575         (WebInspector.UISourceCode.prototype._commitContent):
48576         (WebInspector.UISourceCode.prototype.addRevision):
48577         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48578         (WebInspector.UISourceCode.prototype.revertToOriginal):
48579         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48580         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48581         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48582         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48583         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48584         (WebInspector.UISourceCode.prototype.setFormatted):
48585         (WebInspector.Revision.prototype.revertToThis):
48586         * inspector/front-end/UISourceCodeFrame.js:
48587         (WebInspector.UISourceCodeFrame):
48588         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48589         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48590         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48591         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48592         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48593
48594 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48595
48596         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48597         https://bugs.webkit.org/show_bug.cgi?id=90142
48598
48599         Reviewed by Simon Hausmann.
48600
48601         Added a setter for the certificate of ResourceError.
48602
48603         No change in behavior so no new tests.
48604
48605         * platform/network/cf/ResourceError.h:
48606         (ResourceError):
48607         * platform/network/cf/ResourceErrorCF.cpp:
48608         (WebCore):
48609         (WebCore::ResourceError::setCertificate):
48610
48611 2012-10-12  MORITA Hajime  <morrita@google.com>
48612
48613         [V8] PerContextEnabled methods should be installed when the constructor is created
48614         https://bugs.webkit.org/show_bug.cgi?id=99129
48615
48616         Reviewed by Kentaro Hara.
48617
48618         Before this change, generated installPerContextProperties() method
48619         injected both per-context attributes and functions, and functions
48620         were injected into the prototye object.  This means that the
48621         functions are injected into the prototype repeatedly for each
48622         intance creation.  This injection can be happened only once per
48623         prototype object, which is clearer and is faster.
48624
48625         This change introduces installPerContextPrototypeProperties()
48626         generated method, which is designed to be called for each time when the prototype
48627         object is created.
48628
48629         To do that, WrapperTypeInfo is extended to hold an additional
48630         function pointer to an installPerContextPrototypeProperties()
48631         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48632         where the prototype instance is created.
48633
48634         Other changes:
48635         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48636         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48637           no speed penalty.
48638
48639         No new tests. Covered by existing tests.
48640
48641         * Modules/notifications/NotificationCenter.cpp:
48642         (WebCore::NotificationCenter::document):
48643         * Modules/notifications/NotificationCenter.h:
48644         (NotificationCenter):
48645         * bindings/scripts/CodeGeneratorV8.pm:
48646         (GenerateHeader):
48647         (GenerateConstructorGetter):
48648         (GenerateNamedConstructorCallback):
48649         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48650         (GenerateToV8Converters):
48651         * bindings/scripts/test/V8/V8Float64Array.cpp:
48652         (WebCore):
48653         (WebCore::V8Float64Array::wrapSlow):
48654         * bindings/scripts/test/V8/V8Float64Array.h:
48655         (WebCore::V8Float64Array::installPerContextProperties):
48656         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48657         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48658         (WebCore):
48659         (WebCore::V8TestActiveDOMObject::wrapSlow):
48660         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48661         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48662         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48663         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48664         (WebCore):
48665         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48666         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48667         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48668         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48669         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48670         (WebCore):
48671         (WebCore::V8TestEventConstructor::wrapSlow):
48672         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48673         (WebCore::V8TestEventConstructor::installPerContextProperties):
48674         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48675         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48676         (WebCore):
48677         (WebCore::V8TestEventTarget::wrapSlow):
48678         * bindings/scripts/test/V8/V8TestEventTarget.h:
48679         (WebCore::V8TestEventTarget::installPerContextProperties):
48680         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48681         * bindings/scripts/test/V8/V8TestException.cpp:
48682         (WebCore):
48683         (WebCore::V8TestException::wrapSlow):
48684         * bindings/scripts/test/V8/V8TestException.h:
48685         (WebCore::V8TestException::installPerContextProperties):
48686         (WebCore::V8TestException::installPerContextPrototypeProperties):
48687         * bindings/scripts/test/V8/V8TestInterface.cpp:
48688         (WebCore):
48689         (WebCore::V8TestInterface::wrapSlow):
48690         * bindings/scripts/test/V8/V8TestInterface.h:
48691         (WebCore::V8TestInterface::installPerContextProperties):
48692         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48693         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48694         (WebCore):
48695         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48696         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48697         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48698         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48699         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48700         (WebCore):
48701         (WebCore::V8TestNamedConstructor::wrapSlow):
48702         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48703         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48704         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48705         * bindings/scripts/test/V8/V8TestNode.cpp:
48706         (WebCore):
48707         (WebCore::V8TestNode::wrapSlow):
48708         * bindings/scripts/test/V8/V8TestNode.h:
48709         (WebCore::V8TestNode::installPerContextProperties):
48710         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48711         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48712         (WebCore):
48713         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48714         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48715         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48716         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48717         * bindings/v8/NPV8Object.cpp:
48718         (WebCore::npObjectTypeInfo):
48719         * bindings/v8/V8DOMWindowShell.cpp:
48720         (WebCore::V8DOMWindowShell::installDOMWindow):
48721         * bindings/v8/V8DOMWrapper.cpp:
48722         (WebCore::V8DOMWrapper::instantiateV8Object):
48723         * bindings/v8/V8PerContextData.cpp:
48724         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48725         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48726         * bindings/v8/V8PerContextData.h:
48727         (WebCore::V8PerContextData::createWrapperFromCache):
48728         (WebCore::V8PerContextData::constructorForType):
48729         (V8PerContextData):
48730         * bindings/v8/WorkerContextExecutionProxy.cpp:
48731         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48732         * bindings/v8/WrapperTypeInfo.h:
48733         (WebCore):
48734         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48735         (WrapperTypeInfo):
48736         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48737         (WebCore):
48738
48739 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48740
48741         Web Inspector: Add "goto tab 1,2,3" hotkeys
48742         https://bugs.webkit.org/show_bug.cgi?id=99157
48743
48744         Reviewed by Alexander Pavlov.
48745
48746         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48747
48748         * inspector/front-end/InspectorView.js:
48749         (WebInspector.InspectorView.prototype._keyDown):
48750         (WebInspector.InspectorView.prototype._keyDownInternal):
48751
48752 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48753
48754         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48755         https://bugs.webkit.org/show_bug.cgi?id=98912
48756
48757         Reviewed by Pavel Feldman.
48758
48759         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48760         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48761
48762         * inspector/front-end/BreakpointManager.js:
48763         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48764         * inspector/front-end/JavaScriptSource.js:
48765         * inspector/front-end/JavaScriptSourceFrame.js:
48766         (WebInspector.JavaScriptSourceFrame):
48767         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48768         * inspector/front-end/ResourceScriptMapping.js:
48769         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48770         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48771         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48772         (WebInspector.ScriptFile):
48773         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48774         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48775         (WebInspector.ScriptFile.prototype.addEventListener):
48776         (WebInspector.ScriptFile.prototype.removeEventListener):
48777         (WebInspector.ResourceScriptFile):
48778         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48779         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48780         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48781         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48782         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48783         * inspector/front-end/ScriptSnippetModel.js:
48784         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48785         (WebInspector.SnippetScriptFile):
48786         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48787         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48788         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48789         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48790         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48791         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48792         * inspector/front-end/ScriptsPanel.js:
48793         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48794         * inspector/front-end/StyleSource.js:
48795         * inspector/front-end/StylesSourceMapping.js:
48796         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48797         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48798         (WebInspector.StyleFile):
48799         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48800         (WebInspector.StyleFile.prototype.workingCopyChanged):
48801         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48802         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48803         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48804         * inspector/front-end/UISourceCode.js:
48805         (WebInspector.UISourceCode.prototype.scriptFile):
48806         (WebInspector.UISourceCode.prototype.setScriptFile):
48807         (WebInspector.UISourceCode.prototype.styleFile):
48808         (WebInspector.UISourceCode.prototype.setStyleFile):
48809         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48810         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48811
48812 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48813
48814         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48815         https://bugs.webkit.org/show_bug.cgi?id=99076
48816
48817         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48818         QOpenGLContext for resolving GL methods.
48819         This context is implicitly made current on creation.
48820         Therefore we need to keep track of the previously bound context
48821         and make that one current again after calling create.
48822
48823         Reviewed by Kenneth Rohde Christiansen.
48824
48825         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48826         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48827
48828 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48829
48830         Unreviewed, rolling out r130389.
48831         http://trac.webkit.org/changeset/130389
48832         https://bugs.webkit.org/show_bug.cgi?id=98048
48833
48834         It broke chromium
48835
48836         * WebCore.exp.in:
48837         * page/Settings.cpp:
48838         (WebCore::Settings::setAcceleratedCompositingEnabled):
48839         * page/Settings.h:
48840         (WebCore::Settings::setForceCompositingMode):
48841         (WebCore::Settings::forceCompositingMode):
48842
48843 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48844
48845         Web Inspector: Show request body source in request headers view.
48846         https://bugs.webkit.org/show_bug.cgi?id=99145
48847
48848         Reviewed by Pavel Feldman.
48849
48850         Added view source toggle to query parameters and form data elements.
48851
48852         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48853         (WebInspector.NetworkDataGridNode.prototype._fileName):
48854         (WebInspector.NetworkDataGridNode.NameComparator):
48855         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48856         (WebInspector.NetworkRequest.prototype.queryString):
48857         (WebInspector.NetworkRequest.prototype.get queryParameters):
48858         * inspector/front-end/RequestHeadersView.js:
48859         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48860         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48861         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48862         extracted common method to populate elememnt with raw source text.
48863         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48864         (WebInspector.RequestHeadersView.prototype._refreshParams):
48865         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48866         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48867         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48868
48869 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48870
48871         Optimzie SelectorCheckingContext memory layout
48872         https://bugs.webkit.org/show_bug.cgi?id=99139
48873
48874         Reviewed by Hajime Morita.
48875
48876         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48877         if these two fields are continuously placed.
48878
48879         No new tests, no change in behavior.
48880
48881         * css/SelectorChecker.h:
48882         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48883         (SelectorCheckingContext):
48884
48885 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48886
48887         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48888         https://bugs.webkit.org/show_bug.cgi?id=98000
48889
48890         Reviewed by Yuta Kitamura.
48891
48892         Add no-cache headers to opening handshake.
48893         This is for compatibility improvement.
48894         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48895         when a request doesn't contain no-cache headers.
48896
48897         Test: http/tests/websocket/tests/hybi/nocache.html
48898
48899         * Modules/websockets/WebSocketHandshake.cpp:
48900         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48901         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48902
48903 2012-10-11  Andy Estes  <aestes@apple.com>
48904
48905         Add some basic methods and properties to the injected bundle Objective-C DOM API
48906         https://bugs.webkit.org/show_bug.cgi?id=99137
48907
48908         Reviewed by Sam Weinig.
48909
48910         Export needed symbols.
48911
48912         * WebCore.exp.in:
48913
48914 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48915
48916         Bad copy constructor in StyleRareNonInheritedData
48917         https://bugs.webkit.org/show_bug.cgi?id=98950
48918
48919         Reviewed by Eric Seidel.
48920
48921         Typo in copy constructor caused blendmode to always be the default.
48922
48923         * rendering/style/StyleRareNonInheritedData.cpp:
48924         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48925
48926 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48927
48928         [WebKit IDL] remove all module from idl files.
48929         https://bugs.webkit.org/show_bug.cgi?id=99007
48930
48931         Reviewed by Kentaro Hara.
48932
48933         Since current WebIDL spec doesn't support "module", remove
48934         module from all idl files.
48935
48936         No new tests. I ran run-bindings-tests and no error was reported.
48937
48938         * Modules/battery/BatteryManager.idl:
48939         * Modules/battery/NavigatorBattery.idl:
48940         * Modules/filesystem/DOMFileSystem.idl:
48941         * Modules/filesystem/DOMFileSystemSync.idl:
48942         * Modules/filesystem/DOMWindowFileSystem.idl:
48943         * Modules/filesystem/DataTransferItemFileSystem.idl:
48944         * Modules/filesystem/DirectoryEntry.idl:
48945         * Modules/filesystem/DirectoryEntrySync.idl:
48946         * Modules/filesystem/DirectoryReader.idl:
48947         * Modules/filesystem/DirectoryReaderSync.idl:
48948         * Modules/filesystem/EntriesCallback.idl:
48949         * Modules/filesystem/Entry.idl:
48950         * Modules/filesystem/EntryArray.idl:
48951         * Modules/filesystem/EntryArraySync.idl:
48952         * Modules/filesystem/EntryCallback.idl:
48953         * Modules/filesystem/EntrySync.idl:
48954         * Modules/filesystem/ErrorCallback.idl:
48955         * Modules/filesystem/FileCallback.idl:
48956         * Modules/filesystem/FileEntry.idl:
48957         * Modules/filesystem/FileEntrySync.idl:
48958         * Modules/filesystem/FileSystemCallback.idl:
48959         * Modules/filesystem/FileWriter.idl:
48960         * Modules/filesystem/FileWriterCallback.idl:
48961         * Modules/filesystem/FileWriterSync.idl:
48962         * Modules/filesystem/HTMLInputElementFileSystem.idl:
48963         * Modules/filesystem/Metadata.idl:
48964         * Modules/filesystem/MetadataCallback.idl:
48965         * Modules/filesystem/WorkerContextFileSystem.idl:
48966         * Modules/gamepad/Gamepad.idl:
48967         * Modules/gamepad/GamepadList.idl:
48968         * Modules/gamepad/NavigatorGamepad.idl:
48969         * Modules/geolocation/Geolocation.idl:
48970         * Modules/geolocation/Geoposition.idl:
48971         * Modules/geolocation/NavigatorGeolocation.idl:
48972         * Modules/geolocation/PositionCallback.idl:
48973         * Modules/geolocation/PositionError.idl:
48974         * Modules/geolocation/PositionErrorCallback.idl:
48975         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
48976         * Modules/indexeddb/IDBAny.idl:
48977         * Modules/indexeddb/IDBCursor.idl:
48978         * Modules/indexeddb/IDBCursorWithValue.idl:
48979         * Modules/indexeddb/IDBDatabase.idl:
48980         * Modules/indexeddb/IDBDatabaseException.idl:
48981         * Modules/indexeddb/IDBFactory.idl:
48982         * Modules/indexeddb/IDBIndex.idl:
48983         * Modules/indexeddb/IDBKey.idl:
48984         * Modules/indexeddb/IDBKeyRange.idl:
48985         * Modules/indexeddb/IDBObjectStore.idl:
48986         * Modules/indexeddb/IDBOpenDBRequest.idl:
48987         * Modules/indexeddb/IDBRequest.idl:
48988         * Modules/indexeddb/IDBTransaction.idl:
48989         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48990         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48991         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48992         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48993         * Modules/intents/DOMWindowIntents.idl:
48994         * Modules/intents/DeliveredIntent.idl:
48995         * Modules/intents/Intent.idl:
48996         * Modules/intents/IntentResultCallback.idl:
48997         * Modules/intents/NavigatorIntents.idl:
48998         * Modules/mediasource/MediaSource.idl:
48999         * Modules/mediasource/SourceBuffer.idl:
49000         * Modules/mediasource/SourceBufferList.idl:
49001         * Modules/mediastream/DOMWindowMediaStream.idl:
49002         * Modules/mediastream/IceCallback.idl:
49003         * Modules/mediastream/IceCandidate.idl:
49004         * Modules/mediastream/LocalMediaStream.idl:
49005         * Modules/mediastream/MediaStream.idl:
49006         * Modules/mediastream/MediaStreamEvent.idl:
49007         * Modules/mediastream/MediaStreamList.idl:
49008         * Modules/mediastream/MediaStreamTrack.idl:
49009         * Modules/mediastream/MediaStreamTrackEvent.idl:
49010         * Modules/mediastream/MediaStreamTrackList.idl:
49011         * Modules/mediastream/NavigatorMediaStream.idl:
49012         * Modules/mediastream/NavigatorUserMediaError.idl:
49013         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
49014         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
49015         * Modules/mediastream/PeerConnection00.idl:
49016         * Modules/mediastream/RTCErrorCallback.idl:
49017         * Modules/mediastream/RTCIceCandidate.idl:
49018         * Modules/mediastream/RTCIceCandidateEvent.idl:
49019         * Modules/mediastream/RTCPeerConnection.idl:
49020         * Modules/mediastream/RTCSessionDescription.idl:
49021         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
49022         * Modules/mediastream/RTCStatsCallback.idl:
49023         * Modules/mediastream/RTCStatsElement.idl:
49024         * Modules/mediastream/RTCStatsReport.idl:
49025         * Modules/mediastream/RTCStatsResponse.idl:
49026         * Modules/mediastream/SessionDescription.idl:
49027         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
49028         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
49029         * Modules/networkinfo/NetworkInfoConnection.idl:
49030         * Modules/notifications/DOMWindowNotifications.idl:
49031         * Modules/notifications/Notification.idl:
49032         * Modules/notifications/NotificationCenter.idl:
49033         * Modules/notifications/NotificationPermissionCallback.idl:
49034         * Modules/notifications/WorkerContextNotifications.idl:
49035         * Modules/proximity/DeviceProximityEvent.idl:
49036         * Modules/quota/DOMWindowQuota.idl:
49037         * Modules/quota/StorageInfo.idl:
49038         * Modules/quota/StorageInfoErrorCallback.idl:
49039         * Modules/quota/StorageInfoQuotaCallback.idl:
49040         * Modules/quota/StorageInfoUsageCallback.idl:
49041         * Modules/speech/DOMWindowSpeech.idl:
49042         * Modules/speech/SpeechGrammar.idl:
49043         * Modules/speech/SpeechGrammarList.idl:
49044         * Modules/speech/SpeechRecognition.idl:
49045         * Modules/speech/SpeechRecognitionAlternative.idl:
49046         * Modules/speech/SpeechRecognitionError.idl:
49047         * Modules/speech/SpeechRecognitionEvent.idl:
49048         * Modules/speech/SpeechRecognitionResult.idl:
49049         * Modules/speech/SpeechRecognitionResultList.idl:
49050         * Modules/vibration/NavigatorVibration.idl:
49051         * Modules/webaudio/AudioBuffer.idl:
49052         * Modules/webaudio/AudioBufferCallback.idl:
49053         * Modules/webaudio/AudioBufferSourceNode.idl:
49054         * Modules/webaudio/AudioChannelMerger.idl:
49055         * Modules/webaudio/AudioChannelSplitter.idl:
49056         * Modules/webaudio/AudioContext.idl:
49057         * Modules/webaudio/AudioDestinationNode.idl:
49058         * Modules/webaudio/AudioGain.idl:
49059         * Modules/webaudio/AudioGainNode.idl:
49060         * Modules/webaudio/AudioListener.idl:
49061         * Modules/webaudio/AudioNode.idl:
49062         * Modules/webaudio/AudioPannerNode.idl:
49063         * Modules/webaudio/AudioParam.idl:
49064         * Modules/webaudio/AudioProcessingEvent.idl:
49065         * Modules/webaudio/AudioSourceNode.idl:
49066         * Modules/webaudio/BiquadFilterNode.idl:
49067         * Modules/webaudio/ConvolverNode.idl:
49068         * Modules/webaudio/DOMWindowWebAudio.idl:
49069         * Modules/webaudio/DelayNode.idl:
49070         * Modules/webaudio/DynamicsCompressorNode.idl:
49071         * Modules/webaudio/JavaScriptAudioNode.idl:
49072         * Modules/webaudio/MediaElementAudioSourceNode.idl:
49073         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
49074         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
49075         * Modules/webaudio/Oscillator.idl:
49076         * Modules/webaudio/RealtimeAnalyserNode.idl:
49077         * Modules/webaudio/WaveShaperNode.idl:
49078         * Modules/webaudio/WaveTable.idl:
49079         * Modules/webdatabase/DOMWindowWebDatabase.idl:
49080         * Modules/webdatabase/Database.idl:
49081         * Modules/webdatabase/DatabaseCallback.idl:
49082         * Modules/webdatabase/DatabaseSync.idl:
49083         * Modules/webdatabase/SQLError.idl:
49084         * Modules/webdatabase/SQLException.idl:
49085         * Modules/webdatabase/SQLResultSet.idl:
49086         * Modules/webdatabase/SQLResultSetRowList.idl:
49087         * Modules/webdatabase/SQLStatementCallback.idl:
49088         * Modules/webdatabase/SQLStatementErrorCallback.idl:
49089         * Modules/webdatabase/SQLTransaction.idl:
49090         * Modules/webdatabase/SQLTransactionCallback.idl:
49091         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
49092         * Modules/webdatabase/SQLTransactionSync.idl:
49093         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
49094         * Modules/webdatabase/WorkerContextWebDatabase.idl:
49095         * Modules/websockets/CloseEvent.idl:
49096         * Modules/websockets/DOMWindowWebSocket.idl:
49097         * Modules/websockets/WebSocket.idl:
49098         * Modules/websockets/WorkerContextWebSocket.idl:
49099         * bindings/scripts/test/TestCallback.idl:
49100         * bindings/scripts/test/TestCustomNamedGetter.idl:
49101         * bindings/scripts/test/TestDomainSecurity.idl:
49102         * bindings/scripts/test/TestEventConstructor.idl:
49103         * bindings/scripts/test/TestEventTarget.idl:
49104         * bindings/scripts/test/TestException.idl:
49105         * bindings/scripts/test/TestInterface.idl:
49106         * bindings/scripts/test/TestMediaQueryListListener.idl:
49107         * bindings/scripts/test/TestNamedConstructor.idl:
49108         * bindings/scripts/test/TestNode.idl:
49109         * bindings/scripts/test/TestObj.idl:
49110         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49111         * bindings/scripts/test/TestSupplemental.idl:
49112         * bindings/scripts/test/TestTypedArray.idl:
49113         * css/CSSCharsetRule.idl:
49114         * css/CSSFontFaceRule.idl:
49115         * css/CSSImportRule.idl:
49116         * css/CSSMediaRule.idl:
49117         * css/CSSPageRule.idl:
49118         * css/CSSPrimitiveValue.idl:
49119         * css/CSSRule.idl:
49120         * css/CSSRuleList.idl:
49121         * css/CSSStyleDeclaration.idl:
49122         * css/CSSStyleRule.idl:
49123         * css/CSSStyleSheet.idl:
49124         * css/CSSUnknownRule.idl:
49125         * css/CSSValue.idl:
49126         * css/CSSValueList.idl:
49127         * css/Counter.idl:
49128         * css/MediaList.idl:
49129         * css/MediaQueryList.idl:
49130         * css/MediaQueryListListener.idl:
49131         * css/RGBColor.idl:
49132         * css/Rect.idl:
49133         * css/StyleMedia.idl:
49134         * css/StyleSheet.idl:
49135         * css/StyleSheetList.idl:
49136         * css/WebKitCSSFilterValue.idl:
49137         * css/WebKitCSSKeyframeRule.idl:
49138         * css/WebKitCSSKeyframesRule.idl:
49139         * css/WebKitCSSMatrix.idl:
49140         * css/WebKitCSSRegionRule.idl:
49141         * css/WebKitCSSTransformValue.idl:
49142         * dom/Attr.idl:
49143         * dom/BeforeLoadEvent.idl:
49144         * dom/CDATASection.idl:
49145         * dom/CharacterData.idl:
49146         * dom/ClientRect.idl:
49147         * dom/ClientRectList.idl:
49148         * dom/Clipboard.idl:
49149         * dom/Comment.idl:
49150         * dom/CompositionEvent.idl:
49151         * dom/CustomEvent.idl:
49152         * dom/DOMCoreException.idl:
49153         * dom/DOMError.idl:
49154         * dom/DOMImplementation.idl:
49155         * dom/DOMNamedFlowCollection.idl:
49156         * dom/DOMStringList.idl:
49157         * dom/DOMStringMap.idl:
49158         * dom/DataTransferItem.idl:
49159         * dom/DataTransferItemList.idl:
49160         * dom/DeviceMotionEvent.idl:
49161         * dom/DeviceOrientationEvent.idl:
49162         * dom/Document.idl:
49163         * dom/DocumentFragment.idl:
49164         * dom/DocumentType.idl:
49165         * dom/Element.idl:
49166         * dom/Entity.idl:
49167         * dom/EntityReference.idl:
49168         * dom/ErrorEvent.idl:
49169         * dom/Event.idl:
49170         * dom/EventException.idl:
49171         * dom/EventListener.idl:
49172         * dom/EventTarget.idl:
49173         * dom/HashChangeEvent.idl:
49174         * dom/KeyboardEvent.idl:
49175         * dom/MessageChannel.idl:
49176         * dom/MessageEvent.idl:
49177         * dom/MessagePort.idl:
49178         * dom/MouseEvent.idl:
49179         * dom/MutationCallback.idl:
49180         * dom/MutationEvent.idl:
49181         * dom/MutationObserver.idl:
49182         * dom/MutationRecord.idl:
49183         * dom/NamedNodeMap.idl:
49184         * dom/Node.idl:
49185         * dom/NodeFilter.idl:
49186         * dom/NodeIterator.idl:
49187         * dom/NodeList.idl:
49188         * dom/Notation.idl:
49189         * dom/OverflowEvent.idl:
49190         * dom/PageTransitionEvent.idl:
49191         * dom/PopStateEvent.idl:
49192         * dom/ProcessingInstruction.idl:
49193         * dom/ProgressEvent.idl:
49194         * dom/PropertyNodeList.idl:
49195         * dom/Range.idl:
49196         * dom/RangeException.idl:
49197         * dom/RequestAnimationFrameCallback.idl:
49198         * dom/ShadowRoot.idl:
49199         * dom/StringCallback.idl:
49200         * dom/Text.idl:
49201         * dom/TextEvent.idl:
49202         * dom/Touch.idl:
49203         * dom/TouchEvent.idl:
49204         * dom/TouchList.idl:
49205         * dom/TreeWalker.idl:
49206         * dom/UIEvent.idl:
49207         * dom/WebKitAnimationEvent.idl:
49208         * dom/WebKitNamedFlow.idl:
49209         * dom/WebKitTransitionEvent.idl:
49210         * dom/WheelEvent.idl:
49211         * editing/DOMTransaction.idl:
49212         * editing/UndoManager.idl:
49213         * fileapi/Blob.idl:
49214         * fileapi/File.idl:
49215         * fileapi/FileError.idl:
49216         * fileapi/FileException.idl:
49217         * fileapi/FileList.idl:
49218         * fileapi/FileReader.idl:
49219         * fileapi/FileReaderSync.idl:
49220         * html/DOMFormData.idl:
49221         * html/DOMSettableTokenList.idl:
49222         * html/DOMTokenList.idl:
49223         * html/DOMURL.idl:
49224         * html/HTMLAllCollection.idl:
49225         * html/HTMLAnchorElement.idl:
49226         * html/HTMLAppletElement.idl:
49227         * html/HTMLAreaElement.idl:
49228         * html/HTMLAudioElement.idl:
49229         * html/HTMLBRElement.idl:
49230         * html/HTMLBaseElement.idl:
49231         * html/HTMLBaseFontElement.idl:
49232         * html/HTMLBodyElement.idl:
49233         * html/HTMLButtonElement.idl:
49234         * html/HTMLCanvasElement.idl:
49235         * html/HTMLCollection.idl:
49236         * html/HTMLDListElement.idl:
49237         * html/HTMLDataListElement.idl:
49238         * html/HTMLDetailsElement.idl:
49239         * html/HTMLDialogElement.idl:
49240         * html/HTMLDirectoryElement.idl:
49241         * html/HTMLDivElement.idl:
49242         * html/HTMLDocument.idl:
49243         * html/HTMLElement.idl:
49244         * html/HTMLEmbedElement.idl:
49245         * html/HTMLFieldSetElement.idl:
49246         * html/HTMLFontElement.idl:
49247         * html/HTMLFormElement.idl:
49248         * html/HTMLFrameElement.idl:
49249         * html/HTMLFrameSetElement.idl:
49250         * html/HTMLHRElement.idl:
49251         * html/HTMLHeadElement.idl:
49252         * html/HTMLHeadingElement.idl:
49253         * html/HTMLHtmlElement.idl:
49254         * html/HTMLIFrameElement.idl:
49255         * html/HTMLImageElement.idl:
49256         * html/HTMLInputElement.idl:
49257         * html/HTMLIntentElement.idl:
49258         * html/HTMLKeygenElement.idl:
49259         * html/HTMLLIElement.idl:
49260         * html/HTMLLabelElement.idl:
49261         * html/HTMLLegendElement.idl:
49262         * html/HTMLLinkElement.idl:
49263         * html/HTMLMapElement.idl:
49264         * html/HTMLMarqueeElement.idl:
49265         * html/HTMLMediaElement.idl:
49266         * html/HTMLMenuElement.idl:
49267         * html/HTMLMetaElement.idl:
49268         * html/HTMLMeterElement.idl:
49269         * html/HTMLModElement.idl:
49270         * html/HTMLOListElement.idl:
49271         * html/HTMLObjectElement.idl:
49272         * html/HTMLOptGroupElement.idl:
49273         * html/HTMLOptionElement.idl:
49274         * html/HTMLOptionsCollection.idl:
49275         * html/HTMLOutputElement.idl:
49276         * html/HTMLParagraphElement.idl:
49277         * html/HTMLParamElement.idl:
49278         * html/HTMLPreElement.idl:
49279         * html/HTMLProgressElement.idl:
49280         * html/HTMLPropertiesCollection.idl:
49281         * html/HTMLQuoteElement.idl:
49282         * html/HTMLScriptElement.idl:
49283         * html/HTMLSelectElement.idl:
49284         * html/HTMLSourceElement.idl:
49285         * html/HTMLSpanElement.idl:
49286         * html/HTMLStyleElement.idl:
49287         * html/HTMLTableCaptionElement.idl:
49288         * html/HTMLTableCellElement.idl:
49289         * html/HTMLTableColElement.idl:
49290         * html/HTMLTableElement.idl:
49291         * html/HTMLTableRowElement.idl:
49292         * html/HTMLTableSectionElement.idl:
49293         * html/HTMLTextAreaElement.idl:
49294         * html/HTMLTitleElement.idl:
49295         * html/HTMLTrackElement.idl:
49296         * html/HTMLUListElement.idl:
49297         * html/HTMLUnknownElement.idl:
49298         * html/HTMLVideoElement.idl:
49299         * html/ImageData.idl:
49300         * html/MediaController.idl:
49301         * html/MediaError.idl:
49302         * html/MediaKeyError.idl:
49303         * html/MediaKeyEvent.idl:
49304         * html/MicroDataItemValue.idl:
49305         * html/RadioNodeList.idl:
49306         * html/TextMetrics.idl:
49307         * html/TimeRanges.idl:
49308         * html/ValidityState.idl:
49309         * html/VoidCallback.idl:
49310         * html/canvas/ArrayBuffer.idl:
49311         * html/canvas/ArrayBufferView.idl:
49312         * html/canvas/CanvasGradient.idl:
49313         * html/canvas/CanvasPattern.idl:
49314         * html/canvas/CanvasRenderingContext.idl:
49315         * html/canvas/CanvasRenderingContext2D.idl:
49316         * html/canvas/DataView.idl:
49317         * html/canvas/EXTTextureFilterAnisotropic.idl:
49318         * html/canvas/Float32Array.idl:
49319         * html/canvas/Float64Array.idl:
49320         * html/canvas/Int16Array.idl:
49321         * html/canvas/Int32Array.idl:
49322         * html/canvas/Int8Array.idl:
49323         * html/canvas/OESStandardDerivatives.idl:
49324         * html/canvas/OESTextureFloat.idl:
49325         * html/canvas/OESVertexArrayObject.idl:
49326         * html/canvas/Uint16Array.idl:
49327         * html/canvas/Uint32Array.idl:
49328         * html/canvas/Uint8Array.idl:
49329         * html/canvas/Uint8ClampedArray.idl:
49330         * html/canvas/WebGLActiveInfo.idl:
49331         * html/canvas/WebGLBuffer.idl:
49332         * html/canvas/WebGLCompressedTextureS3TC.idl:
49333         * html/canvas/WebGLContextAttributes.idl:
49334         * html/canvas/WebGLContextEvent.idl:
49335         * html/canvas/WebGLDebugRendererInfo.idl:
49336         * html/canvas/WebGLDebugShaders.idl:
49337         * html/canvas/WebGLDepthTexture.idl:
49338         * html/canvas/WebGLFramebuffer.idl:
49339         * html/canvas/WebGLLoseContext.idl:
49340         * html/canvas/WebGLProgram.idl:
49341         * html/canvas/WebGLRenderbuffer.idl:
49342         * html/canvas/WebGLRenderingContext.idl:
49343         * html/canvas/WebGLShader.idl:
49344         * html/canvas/WebGLShaderPrecisionFormat.idl:
49345         * html/canvas/WebGLTexture.idl:
49346         * html/canvas/WebGLUniformLocation.idl:
49347         * html/canvas/WebGLVertexArrayObjectOES.idl:
49348         * html/shadow/HTMLContentElement.idl:
49349         * html/shadow/HTMLShadowElement.idl:
49350         * html/track/TextTrack.idl:
49351         * html/track/TextTrackCue.idl:
49352         * html/track/TextTrackCueList.idl:
49353         * html/track/TextTrackList.idl:
49354         * html/track/TrackEvent.idl:
49355         * inspector/InjectedScriptHost.idl:
49356         * inspector/InspectorFrontendHost.idl:
49357         * inspector/JavaScriptCallFrame.idl:
49358         * inspector/ScriptProfile.idl:
49359         * inspector/ScriptProfileNode.idl:
49360         * loader/appcache/DOMApplicationCache.idl:
49361         * page/AbstractView.idl:
49362         * page/BarInfo.idl:
49363         * page/Console.idl:
49364         * page/Coordinates.idl:
49365         * page/Crypto.idl:
49366         * page/DOMSecurityPolicy.idl:
49367         * page/DOMSelection.idl:
49368         * page/DOMWindow.idl:
49369         * page/DOMWindowPagePopup.idl:
49370         * page/EventSource.idl:
49371         * page/History.idl:
49372         * page/Location.idl:
49373         * page/MemoryInfo.idl:
49374         * page/Navigator.idl:
49375         * page/PagePopupController.idl:
49376         * page/Performance.idl:
49377         * page/PerformanceEntry.idl:
49378         * page/PerformanceEntryList.idl:
49379         * page/PerformanceNavigation.idl:
49380         * page/PerformanceResourceTiming.idl:
49381         * page/PerformanceTiming.idl:
49382         * page/Screen.idl:
49383         * page/SpeechInputEvent.idl:
49384         * page/SpeechInputResult.idl:
49385         * page/SpeechInputResultList.idl:
49386         * page/WebKitAnimation.idl:
49387         * page/WebKitAnimationList.idl:
49388         * page/WebKitPoint.idl:
49389         * page/WorkerNavigator.idl:
49390         * plugins/DOMMimeType.idl:
49391         * plugins/DOMMimeTypeArray.idl:
49392         * plugins/DOMPlugin.idl:
49393         * plugins/DOMPluginArray.idl:
49394         * storage/Storage.idl:
49395         * storage/StorageEvent.idl:
49396         * svg/ElementTimeControl.idl:
49397         * svg/SVGAElement.idl:
49398         * svg/SVGAltGlyphDefElement.idl:
49399         * svg/SVGAltGlyphElement.idl:
49400         * svg/SVGAltGlyphItemElement.idl:
49401         * svg/SVGAngle.idl:
49402         * svg/SVGAnimateColorElement.idl:
49403         * svg/SVGAnimateElement.idl:
49404         * svg/SVGAnimateMotionElement.idl:
49405         * svg/SVGAnimateTransformElement.idl:
49406         * svg/SVGAnimatedAngle.idl:
49407         * svg/SVGAnimatedBoolean.idl:
49408         * svg/SVGAnimatedEnumeration.idl:
49409         * svg/SVGAnimatedInteger.idl:
49410         * svg/SVGAnimatedLength.idl:
49411         * svg/SVGAnimatedLengthList.idl:
49412         * svg/SVGAnimatedNumber.idl:
49413         * svg/SVGAnimatedNumberList.idl:
49414         * svg/SVGAnimatedPreserveAspectRatio.idl:
49415         * svg/SVGAnimatedRect.idl:
49416         * svg/SVGAnimatedString.idl:
49417         * svg/SVGAnimatedTransformList.idl:
49418         * svg/SVGAnimationElement.idl:
49419         * svg/SVGCircleElement.idl:
49420         * svg/SVGClipPathElement.idl:
49421         * svg/SVGColor.idl:
49422         * svg/SVGComponentTransferFunctionElement.idl:
49423         * svg/SVGCursorElement.idl:
49424         * svg/SVGDefsElement.idl:
49425         * svg/SVGDescElement.idl:
49426         * svg/SVGDocument.idl:
49427         * svg/SVGElement.idl:
49428         * svg/SVGElementInstance.idl:
49429         * svg/SVGElementInstanceList.idl:
49430         * svg/SVGEllipseElement.idl:
49431         * svg/SVGException.idl:
49432         * svg/SVGExternalResourcesRequired.idl:
49433         * svg/SVGFEBlendElement.idl:
49434         * svg/SVGFEColorMatrixElement.idl:
49435         * svg/SVGFEComponentTransferElement.idl:
49436         * svg/SVGFECompositeElement.idl:
49437         * svg/SVGFEConvolveMatrixElement.idl:
49438         * svg/SVGFEDiffuseLightingElement.idl:
49439         * svg/SVGFEDisplacementMapElement.idl:
49440         * svg/SVGFEDistantLightElement.idl:
49441         * svg/SVGFEDropShadowElement.idl:
49442         * svg/SVGFEFloodElement.idl:
49443         * svg/SVGFEFuncAElement.idl:
49444         * svg/SVGFEFuncBElement.idl:
49445         * svg/SVGFEFuncGElement.idl:
49446         * svg/SVGFEFuncRElement.idl:
49447         * svg/SVGFEGaussianBlurElement.idl:
49448         * svg/SVGFEImageElement.idl:
49449         * svg/SVGFEMergeElement.idl:
49450         * svg/SVGFEMergeNodeElement.idl:
49451         * svg/SVGFEMorphologyElement.idl:
49452         * svg/SVGFEOffsetElement.idl:
49453         * svg/SVGFEPointLightElement.idl:
49454         * svg/SVGFESpecularLightingElement.idl:
49455         * svg/SVGFESpotLightElement.idl:
49456         * svg/SVGFETileElement.idl:
49457         * svg/SVGFETurbulenceElement.idl:
49458         * svg/SVGFilterElement.idl:
49459         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49460         * svg/SVGFitToViewBox.idl:
49461         * svg/SVGFontElement.idl:
49462         * svg/SVGFontFaceElement.idl:
49463         * svg/SVGFontFaceFormatElement.idl:
49464         * svg/SVGFontFaceNameElement.idl:
49465         * svg/SVGFontFaceSrcElement.idl:
49466         * svg/SVGFontFaceUriElement.idl:
49467         * svg/SVGForeignObjectElement.idl:
49468         * svg/SVGGElement.idl:
49469         * svg/SVGGlyphElement.idl:
49470         * svg/SVGGlyphRefElement.idl:
49471         * svg/SVGGradientElement.idl:
49472         * svg/SVGHKernElement.idl:
49473         * svg/SVGImageElement.idl:
49474         * svg/SVGLangSpace.idl:
49475         * svg/SVGLength.idl:
49476         * svg/SVGLengthList.idl:
49477         * svg/SVGLineElement.idl:
49478         * svg/SVGLinearGradientElement.idl:
49479         * svg/SVGLocatable.idl:
49480         * svg/SVGMPathElement.idl:
49481         * svg/SVGMarkerElement.idl:
49482         * svg/SVGMaskElement.idl:
49483         * svg/SVGMatrix.idl:
49484         * svg/SVGMetadataElement.idl:
49485         * svg/SVGMissingGlyphElement.idl:
49486         * svg/SVGNumber.idl:
49487         * svg/SVGNumberList.idl:
49488         * svg/SVGPaint.idl:
49489         * svg/SVGPathElement.idl:
49490         * svg/SVGPathSeg.idl:
49491         * svg/SVGPathSegArcAbs.idl:
49492         * svg/SVGPathSegArcRel.idl:
49493         * svg/SVGPathSegClosePath.idl:
49494         * svg/SVGPathSegCurvetoCubicAbs.idl:
49495         * svg/SVGPathSegCurvetoCubicRel.idl:
49496         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49497         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49498         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49499         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49500         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49501         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49502         * svg/SVGPathSegLinetoAbs.idl:
49503         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49504         * svg/SVGPathSegLinetoHorizontalRel.idl:
49505         * svg/SVGPathSegLinetoRel.idl:
49506         * svg/SVGPathSegLinetoVerticalAbs.idl:
49507         * svg/SVGPathSegLinetoVerticalRel.idl:
49508         * svg/SVGPathSegList.idl:
49509         * svg/SVGPathSegMovetoAbs.idl:
49510         * svg/SVGPathSegMovetoRel.idl:
49511         * svg/SVGPatternElement.idl:
49512         * svg/SVGPoint.idl:
49513         * svg/SVGPointList.idl:
49514         * svg/SVGPolygonElement.idl:
49515         * svg/SVGPolylineElement.idl:
49516         * svg/SVGPreserveAspectRatio.idl:
49517         * svg/SVGRadialGradientElement.idl:
49518         * svg/SVGRect.idl:
49519         * svg/SVGRectElement.idl:
49520         * svg/SVGRenderingIntent.idl:
49521         * svg/SVGSVGElement.idl:
49522         * svg/SVGScriptElement.idl:
49523         * svg/SVGSetElement.idl:
49524         * svg/SVGStopElement.idl:
49525         * svg/SVGStringList.idl:
49526         * svg/SVGStylable.idl:
49527         * svg/SVGStyleElement.idl:
49528         * svg/SVGSwitchElement.idl:
49529         * svg/SVGSymbolElement.idl:
49530         * svg/SVGTRefElement.idl:
49531         * svg/SVGTSpanElement.idl:
49532         * svg/SVGTests.idl:
49533         * svg/SVGTextContentElement.idl:
49534         * svg/SVGTextElement.idl:
49535         * svg/SVGTextPathElement.idl:
49536         * svg/SVGTextPositioningElement.idl:
49537         * svg/SVGTitleElement.idl:
49538         * svg/SVGTransform.idl:
49539         * svg/SVGTransformList.idl:
49540         * svg/SVGTransformable.idl:
49541         * svg/SVGURIReference.idl:
49542         * svg/SVGUnitTypes.idl:
49543         * svg/SVGUseElement.idl:
49544         * svg/SVGVKernElement.idl:
49545         * svg/SVGViewElement.idl:
49546         * svg/SVGViewSpec.idl:
49547         * svg/SVGZoomAndPan.idl:
49548         * svg/SVGZoomEvent.idl:
49549         * testing/InternalSettings.idl:
49550         * testing/Internals.idl:
49551         * testing/MallocStatistics.idl:
49552         * workers/AbstractWorker.idl:
49553         * workers/DedicatedWorkerContext.idl:
49554         * workers/SharedWorker.idl:
49555         * workers/SharedWorkerContext.idl:
49556         * workers/Worker.idl:
49557         * workers/WorkerContext.idl:
49558         * workers/WorkerLocation.idl:
49559         * xml/DOMParser.idl:
49560         * xml/XMLHttpRequest.idl:
49561         * xml/XMLHttpRequestException.idl:
49562         * xml/XMLHttpRequestProgressEvent.idl:
49563         * xml/XMLHttpRequestUpload.idl:
49564         * xml/XMLSerializer.idl:
49565         * xml/XPathEvaluator.idl:
49566         * xml/XPathException.idl:
49567         * xml/XPathExpression.idl:
49568         * xml/XPathNSResolver.idl:
49569         * xml/XPathResult.idl:
49570         * xml/XSLTProcessor.idl:
49571         Removed "module".
49572
49573 2012-10-11  Beth Dakin  <bdakin@apple.com>
49574
49575         https://bugs.webkit.org/show_bug.cgi?id=98700
49576         ScrollingCoordinator is a hot mess of if-defs
49577
49578         Reviewed by Anders Carlsson.
49579
49580         This patch moves all of the threaded scrolling code in 
49581         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49582         which inherits from ScrollingCoordinator. 
49583
49584         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49585         ScrollingCoordinator itself does work that is cross-platform. 
49586         
49587         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49588         ScrollingCoordinator is now sufficient for platforms that relied on 
49589         ScrollingCoordinatorNone to build.
49590
49591         * CMakeLists.txt:
49592         * GNUmakefile.list.am:
49593         * Target.pri:
49594         * WebCore.exp.in:
49595         * WebCore.xcodeproj/project.pbxproj:
49596         * page/scrolling/ScrollingCoordinator.cpp:
49597         (WebCore::ScrollingCoordinator::create):
49598         (WebCore):
49599         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49600         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49601         (WebCore::ScrollingCoordinator::pageDestroyed):
49602         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49603         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49604         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49605         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49606         * page/scrolling/ScrollingCoordinator.h:
49607         (WebCore):
49608         (ScrollingCoordinator):
49609         (WebCore::ScrollingCoordinator::scrollingTree):
49610         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49611         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49612         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49613         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49614         (WebCore::ScrollingCoordinator::handleWheelEvent):
49615         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49616         (WebCore::ScrollingCoordinator::attachToStateTree):
49617         (WebCore::ScrollingCoordinator::detachFromStateTree):
49618         (WebCore::ScrollingCoordinator::clearStateTree):
49619         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49620         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49621         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49622         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49623         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49624         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49625         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49626         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49627         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49628         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49629         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49630         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49631         (WebCore):
49632         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49633         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49634         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49635         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49636         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49637         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49638         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49639         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49640         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49641         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49642         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49643         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49644         (WebCore):
49645         (ScrollingCoordinatorChromium):
49646         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49647         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49648         (WebCore):
49649         (ScrollingCoordinatorMac):
49650         (ScrollParameters):
49651         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49652         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49653         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49654         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49655         (WebCore):
49656         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49657         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49658         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49659         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49660         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49661         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49662         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49663         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49664         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49665         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49666         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49667         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49668         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49669         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49670         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49671         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49672         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49673         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49674         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49675         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49676         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49677         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49678         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49679         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49680
49681 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49682
49683         [Shadow DOM] Insertion points need resetStyleInheritance
49684         https://bugs.webkit.org/show_bug.cgi?id=93922
49685
49686         Reviewed by Dimitri Glazkov.
49687
49688         Implemented resetStyleInheritance of insertion points.
49689         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49690
49691         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49692
49693         * css/StyleResolver.cpp:
49694         (WebCore::isResetStyleInheritance):
49695         Added a new function to check whether there exists any insertion
49696         point which has reset-style-inhertiance flag set to be true.
49697         (WebCore::StyleResolver::initForStyleResolve):
49698         Modified to use the above function to check reset-style-inheritance.
49699         * html/shadow/HTMLContentElement.idl:
49700         * html/shadow/HTMLShadowElement.idl:
49701         Added a new attribute for reset-style-inheritance.
49702         * html/shadow/InsertionPoint.cpp:
49703         (WebCore::InsertionPoint::InsertionPoint):
49704         Initialized a new member variable for reset-style-inheritance.
49705         (WebCore::InsertionPoint::resetStyleInheritance):
49706         (WebCore::InsertionPoint::setResetStyleInheritance):
49707         Implemented setter/getter for reset-style-inheritance.
49708         * html/shadow/InsertionPoint.h:
49709         (InsertionPoint):
49710         Added a new member variable for reset-style-inheritance.
49711
49712 2012-10-11  Anders Carlsson  <andersca@apple.com>
49713
49714         Attempt to fix build broken by r131125.
49715
49716         * page/PageSerializer.cpp:
49717         (WebCore::PageSerializer::addImageToResources):
49718         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49719
49720 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49721
49722         [Chromium] Use harfbuzz-ng by default on Linux
49723         https://bugs.webkit.org/show_bug.cgi?id=97281
49724
49725         Reviewed by Tony Chang.
49726
49727         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49728
49729         No new tests. Existing tests should cover this switch.
49730         Test expectations will be updated.
49731
49732         * WebCore.gyp/WebCore.gyp:
49733
49734 2012-10-11  Nat Duca  <nduca@chromium.org>
49735
49736         Expose high-resolution on requestAnimationFrame callback
49737         https://bugs.webkit.org/show_bug.cgi?id=66683
49738
49739         This changes requestAnimationFrame's animationStartTime argument
49740         to be a high resolution DOM timestamp, per disucssion here:
49741         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49742
49743         Reviewed by James Robinson.
49744
49745         Covered by existing requestAnimationFrame tests.
49746
49747         * dom/Document.cpp:
49748         (WebCore::Document::serviceScriptedAnimations):
49749         * dom/Document.h:
49750         (Document):
49751         * dom/ScriptedAnimationController.cpp:
49752         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49753         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49754         (WebCore):
49755         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49756         (WebCore::ScriptedAnimationController::scheduleAnimation):
49757         (WebCore::ScriptedAnimationController::animationTimerFired):
49758         (WebCore::ScriptedAnimationController::displayRefreshFired):
49759         * dom/ScriptedAnimationController.h:
49760         (ScriptedAnimationController):
49761         * page/FrameView.cpp:
49762         (WebCore::FrameView::serviceScriptedAnimations):
49763         * page/FrameView.h:
49764         (FrameView):
49765         * platform/graphics/DisplayRefreshMonitor.cpp:
49766         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49767         (WebCore::DisplayRefreshMonitor::notifyClients):
49768         * platform/graphics/DisplayRefreshMonitor.h:
49769         (DisplayRefreshMonitor):
49770         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49771         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49772         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49773         (WebCore):
49774         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49775         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49776
49777 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49778
49779         Unreviewed, rolling out r131100.
49780         http://trac.webkit.org/changeset/131100
49781         https://bugs.webkit.org/show_bug.cgi?id=99127
49782
49783         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49784
49785         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49786         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49787
49788 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49789
49790         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49791         https://bugs.webkit.org/show_bug.cgi?id=98979
49792
49793         Reviewed by Tony Chang.
49794
49795         - Specify 'vert' and 'vrt2' features when we render vertical text.
49796         - Set appropriate script so that harfbuzz-ng can use the features.
49797
49798         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49799         This change will affect after switching to harfbuzz-ng.
49800
49801         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49802         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49803         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49804         (WebCore):
49805         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49806         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49807         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49808         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49809         (WebCore::HarfBuzzShaper::setFontFeatures):
49810         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49811         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49812         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49813
49814 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49815
49816         Fix for a crasher when generating MHTML for a page containing SVG images.
49817         https://bugs.webkit.org/show_bug.cgi?id=99105
49818
49819         Reviewed by Adam Barth.
49820
49821         * page/PageSerializer.cpp:
49822         (WebCore::PageSerializer::serializeCSSStyleSheet):
49823         (WebCore::PageSerializer::addImageToResources):
49824
49825 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49826
49827         Unreviewed, rolling out r131107.
49828         http://trac.webkit.org/changeset/131107
49829         https://bugs.webkit.org/show_bug.cgi?id=99126
49830
49831         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49832
49833         * accessibility/AccessibilityNodeObject.cpp:
49834         (WebCore::AccessibilityNodeObject::labelForElement):
49835         * dom/DocumentOrderedMap.cpp:
49836         * dom/DocumentOrderedMap.h:
49837         (DocumentOrderedMap):
49838         * dom/Element.cpp:
49839         (WebCore::Element::insertedInto):
49840         (WebCore::Element::removedFrom):
49841         (WebCore):
49842         (WebCore::Element::willModifyAttribute):
49843         * dom/Element.h:
49844         (Element):
49845         * dom/TreeScope.cpp:
49846         (WebCore::TreeScope::TreeScope):
49847         * dom/TreeScope.h:
49848         (WebCore):
49849         (TreeScope):
49850
49851 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49852
49853         LocalCurrentGraphicsContext will never restore the current context to null
49854         https://bugs.webkit.org/show_bug.cgi?id=99122
49855
49856         Reviewed by Simon Fraser.
49857
49858         LocalCurrentGraphicsContext is meant to cause temporary changes to
49859         NSGraphicsContext's currentContext. However, if it is entered when
49860         currentContext is null, it will not restore to null, as a null
49861         m_savedNSGraphicsContext was being used to indicate that the current and
49862         passed-in graphics contexts were equal (and thus no save/restore was required).
49863
49864         Add a separate flag for whether or not we need to restore the context.
49865
49866         Also flip the order of calls to restore graphics context state so that
49867         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49868         of entry.
49869
49870         * platform/mac/LocalCurrentGraphicsContext.h:
49871         (LocalCurrentGraphicsContext):
49872         * platform/mac/LocalCurrentGraphicsContext.mm:
49873         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49874         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49875
49876 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49877
49878         Unreviewed, rolling out r131109.
49879         http://trac.webkit.org/changeset/131109
49880         https://bugs.webkit.org/show_bug.cgi?id=99124
49881
49882         Does not compile on chromium-mac (Requested by
49883         abarth|gardening on #webkit).
49884
49885         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49886         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49887         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49888         (HarfBuzzNGFace):
49889         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49890         (WebCore::HarfBuzzShaper::setFontFeatures):
49891         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49892
49893 2012-10-11  Beth Dakin  <bdakin@apple.com>
49894
49895         https://bugs.webkit.org/show_bug.cgi?id=99111
49896         ScrollingStateNode should keep its Vector of children in an OwnPtr
49897
49898         Reviewed by Ada Chan.
49899
49900         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49901          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49902         * page/scrolling/ScrollingStateNode.cpp:
49903         (WebCore::ScrollingStateNode::ScrollingStateNode):
49904         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49905         (WebCore::ScrollingStateNode::appendChild):
49906         * page/scrolling/ScrollingStateNode.h:
49907         (ScrollingStateNode):
49908
49909 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49910
49911         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49912         https://bugs.webkit.org/show_bug.cgi?id=98571
49913
49914         Reviewed by Emil A Eklund.
49915
49916         Refactoring all coordinate-switching functionality to use a single "mode" flag
49917         as opposed to having a bunch of boolean values. This enables the same set of
49918         options across the board, and a consistent interface. This was previously
49919         done for mapLocalToContainer.
49920
49921         The imptetus for this for this stems from the one logical change in this patch
49922         which only effects sub-pixel layout. FrameView::convertToRenderer and
49923         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49924         offsets to determine proper rects for scrolling.
49925
49926         Unlabeled functions below are simply being updated to these new interfaces.
49927
49928         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49929
49930         * WebCore.exp.in:
49931         * dom/ContainerNode.cpp:
49932         (WebCore::ContainerNode::getUpperLeftCorner):
49933         (WebCore::ContainerNode::getLowerRightCorner):
49934         * dom/Element.cpp:
49935         (WebCore::Element::boundsInRootViewSpace):
49936         * dom/MouseRelatedEvent.cpp:
49937         (WebCore::MouseRelatedEvent::computeRelativePosition):
49938         * dom/Node.cpp:
49939         (WebCore::Node::convertToPage):
49940         (WebCore::Node::convertFromPage):
49941         * html/HTMLSelectElement.cpp:
49942         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49943         * html/shadow/SliderThumbElement.cpp:
49944         (WebCore::SliderThumbElement::setPositionFromPoint):
49945         * html/shadow/SpinButtonElement.cpp:
49946         (WebCore::SpinButtonElement::defaultEventHandler):
49947         * page/FrameView.cpp:
49948         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49949         them to TransformState, which transforms the coordinates.
49950         (WebCore::FrameView::convertFromRenderer): Ditto.
49951         * rendering/LayoutState.cpp:
49952         (WebCore::LayoutState::LayoutState):
49953         * rendering/RenderBlock.cpp:
49954         (WebCore::RenderBlock::absoluteQuads):
49955         * rendering/RenderBox.cpp:
49956         (WebCore::RenderBox::absoluteQuads):
49957         (WebCore::RenderBox::mapLocalToContainer):
49958         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49959         * rendering/RenderBox.h:
49960         (RenderBox):
49961         * rendering/RenderBoxModelObject.cpp:
49962         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
49963         * rendering/RenderBoxModelObject.h:
49964         (RenderBoxModelObject):
49965         * rendering/RenderEmbeddedObject.cpp:
49966         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
49967         * rendering/RenderFrameSet.cpp:
49968         (WebCore::RenderFrameSet::userResize):
49969         * rendering/RenderGeometryMap.cpp:
49970         (WebCore::RenderGeometryMap::absolutePoint):
49971         * rendering/RenderInline.cpp:
49972         (WebCore::RenderInline::mapLocalToContainer):
49973         * rendering/RenderInline.h:
49974         (RenderInline):
49975         * rendering/RenderLayer.cpp:
49976         (WebCore::RenderLayer::absoluteToContents):
49977         (WebCore::RenderLayer::calculateClipRects):
49978         * rendering/RenderMediaControls.cpp:
49979         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
49980         * rendering/RenderMenuList.cpp:
49981         (WebCore::RenderMenuList::showPopup):
49982         * rendering/RenderObject.cpp:
49983         (WebCore::RenderObject::localToAbsolute):
49984         (WebCore::RenderObject::absoluteToLocal):
49985         (WebCore::RenderObject::mapLocalToContainer):
49986         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
49987         (WebCore::RenderObject::localToContainerQuad):
49988         (WebCore::RenderObject::localToContainerPoint):
49989         * rendering/RenderObject.h:
49990         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
49991         now used for other conversion methods.
49992         (WebCore::RenderObject::localToAbsoluteQuad):
49993         * rendering/RenderTheme.cpp:
49994         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
49995         * rendering/RenderView.cpp:
49996         (WebCore::RenderView::mapLocalToContainer):
49997         (WebCore::RenderView::mapAbsoluteToLocalPoint):
49998         * rendering/RenderView.h:
49999         (RenderView):
50000         * rendering/svg/RenderSVGForeignObject.cpp:
50001         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
50002         * rendering/svg/RenderSVGForeignObject.h:
50003         (RenderSVGForeignObject):
50004         * rendering/svg/RenderSVGInline.cpp:
50005         (WebCore::RenderSVGInline::mapLocalToContainer):
50006         * rendering/svg/RenderSVGInline.h:
50007         (RenderSVGInline):
50008         * rendering/svg/RenderSVGModelObject.cpp:
50009         (WebCore::RenderSVGModelObject::mapLocalToContainer):
50010         * rendering/svg/RenderSVGModelObject.h:
50011         (RenderSVGModelObject):
50012         * rendering/svg/RenderSVGRoot.cpp:
50013         (WebCore::RenderSVGRoot::mapLocalToContainer):
50014         * rendering/svg/RenderSVGRoot.h:
50015         (RenderSVGRoot):
50016         * rendering/svg/RenderSVGText.cpp:
50017         (WebCore::RenderSVGText::mapLocalToContainer):
50018         * rendering/svg/RenderSVGText.h:
50019         (RenderSVGText):
50020         * rendering/svg/SVGRenderSupport.cpp:
50021         (WebCore::SVGRenderSupport::mapLocalToContainer):
50022         * svg/SVGSVGElement.cpp:
50023         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
50024
50025 2012-10-11  Adam Barth  <abarth@webkit.org>
50026
50027         Incorrect/Illegal static cast in FrameView.cpp
50028         https://bugs.webkit.org/show_bug.cgi?id=98943
50029
50030         Reviewed by Eric Seidel.
50031
50032         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
50033
50034         * page/FrameView.cpp:
50035         (WebCore::FrameView::init):
50036
50037 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
50038
50039         [Chromium] Improve vertical text rendering of HarfBuzzShaper
50040         https://bugs.webkit.org/show_bug.cgi?id=98979
50041
50042         Reviewed by Tony Chang.
50043
50044         - Specify 'vert' and 'vrt2' features when we render vertical text.
50045         - Set appropriate script so that harfbuzz-ng can use the features.
50046
50047         No new tests. fast/text/international/text-spliced-font.html should cover this change.
50048         This change will affect after switching to harfbuzz-ng.
50049
50050         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
50051         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
50052         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
50053         (WebCore):
50054         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
50055         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
50056         (HarfBuzzNGFace): Added m_scriptForVerticalText.
50057         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
50058         (WebCore::HarfBuzzShaper::setFontFeatures):
50059         Set 'vert' and 'vrt2' features when orientation() == Vertical.
50060         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
50061         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
50062
50063 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
50064
50065         AX: labelForElement is slow when there are a lot of DOM elements
50066         https://bugs.webkit.org/show_bug.cgi?id=97825
50067
50068         Reviewed by Ryosuke Niwa.
50069
50070         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
50071         quickly map from an id to the label for that id. This speeds up
50072         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
50073         when accessibility was on.
50074
50075         Tests: accessibility/title-ui-element-correctness.html
50076                perf/accessibility-title-ui-element.html
50077
50078         * accessibility/AccessibilityNodeObject.cpp:
50079         (WebCore::AccessibilityNodeObject::labelForElement):
50080         * dom/DocumentOrderedMap.cpp:
50081         (WebCore::keyMatchesLabelForAttribute):
50082         (WebCore):
50083         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
50084         * dom/DocumentOrderedMap.h:
50085         (DocumentOrderedMap):
50086         * dom/Element.cpp:
50087         (WebCore::Element::insertedInto):
50088         (WebCore::Element::removedFrom):
50089         (WebCore::Element::updateLabel):
50090         (WebCore):
50091         (WebCore::Element::willModifyAttribute):
50092         * dom/Element.h:
50093         (Element):
50094         * dom/TreeScope.cpp:
50095         (WebCore::TreeScope::TreeScope):
50096         (WebCore::TreeScope::addLabel):
50097         (WebCore):
50098         (WebCore::TreeScope::removeLabel):
50099         (WebCore::TreeScope::labelElementForId):
50100         * dom/TreeScope.h:
50101         (WebCore):
50102         (TreeScope):
50103         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50104
50105 2012-10-11  James Simonsen  <simonjam@chromium.org>
50106
50107         unprefix window.performance.webkitNow()
50108         https://bugs.webkit.org/show_bug.cgi?id=88278
50109
50110         Reviewed by Tony Gentilcore.
50111
50112         Test: fast/dom/Window/window-properties-performance.html
50113               fast/performance/performance-now-timestamps.html
50114
50115         * page/Performance.cpp:
50116         (WebCore::Performance::now):
50117         * page/Performance.h:
50118         (Performance):
50119         * page/Performance.idl:
50120
50121 2012-10-11  Roger Fong  <roger_fong@apple.com>
50122
50123         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50124         https://bugs.webkit.org/show_bug.cgi?id=98966
50125
50126         Reviewed by Dean Jackson.
50127
50128         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50129         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50130         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.
50131         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50132
50133         Tested using Khronos WebGL conformance suite:
50134         conformance/glsl/misc/glsl-long-variable-names.html
50135
50136         * platform/graphics/ANGLEWebKitBridge.cpp:
50137         (WebCore::getSymbolInfo):
50138
50139 2012-10-11  Andreas Kling  <kling@webkit.org>
50140
50141         ElementAttributeData shouldn't be managing Element's callbacks.
50142         <http://webkit.org/b/98987>
50143
50144         Reviewed by Anders Carlsson.
50145
50146         Dispatch the following attribute-related Element callbacks from within Element
50147         instead of ElementAttributeData. Also made them private.
50148
50149             - willModifyAttribute
50150             - didModifyAttribute
50151             - didAddAttribute
50152             - didRemoveAttribute
50153
50154         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50155
50156         * dom/Element.cpp:
50157         (WebCore::Element::detachAttribute):
50158         (WebCore::Element::removeAttribute):
50159         (WebCore::Element::setAttributeInternal):
50160         (WebCore::Element::removeAttributeInternal):
50161         (WebCore::Element::addAttributeInternal):
50162         * dom/Element.h:
50163         * dom/ElementAttributeData.cpp:
50164         (WebCore::ElementAttributeData::addAttribute):
50165         (WebCore::ElementAttributeData::removeAttribute):
50166         * dom/ElementAttributeData.h:
50167
50168 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50169
50170         [CSS Shaders] Make custom filters use a premultiplied buffer.
50171         https://bugs.webkit.org/show_bug.cgi?id=98396
50172
50173         Reviewed by Dean Jackson.
50174
50175         Currently, a GLSL css_Composite function returns a premultiplied color, so
50176         FECustomFilter must make a premultiplied buffer in the case when an author is
50177         using the CSS mix function.
50178
50179         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50180         1. FilterEffect::asImageBuffer is faster.
50181         2. In the future when Accelerated Compositing implementations use
50182         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50183         premultiplied buffer.
50184
50185         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50186
50187         * platform/graphics/filters/FECustomFilter.cpp:
50188         (WebCore::FECustomFilter::applyShader):
50189
50190 2012-10-11  Rob Buis  <rbuis@rim.com>
50191
50192         [CMAKE] Do not add include dirs twice
50193         https://bugs.webkit.org/show_bug.cgi?id=99099
50194
50195         Reviewed by Yong Li.
50196
50197         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50198         call does this for us.
50199
50200         * CMakeLists.txt:
50201
50202 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50203
50204         [CSS Shaders] Implement all composite operators except destination and lighter.
50205         https://bugs.webkit.org/show_bug.cgi?id=97859
50206
50207         Reviewed by Dean Jackson.
50208
50209         Add expressions for all composite operators except destination and
50210         lighter. The expressions are lifted directly from the CSS Compositing
50211         and Blending spec [1]. WebKit adds these compositing expressions to the
50212         author's shader.
50213
50214         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50215
50216         Test: css3/filters/custom/custom-filter-composite-operators.html
50217
50218         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50219         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50220
50221 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50222
50223         IndexedDB: IDL types defined in spec should be visible to scripts
50224         https://bugs.webkit.org/show_bug.cgi?id=99093
50225
50226         Reviewed by Adam Barth.
50227
50228         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50229         to scripts as properties of the global object. A few types were missing - add them.
50230
50231         Test: storage/indexeddb/interfaces.html
50232
50233         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50234         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50235
50236 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50237
50238         Removed ASSERT_CLASS_FITS_IN_CELL
50239         https://bugs.webkit.org/show_bug.cgi?id=97634
50240
50241         Reviewed by Mark Hahnenberg.
50242
50243         * bindings/js/JSDOMWindowShell.cpp:
50244         (WebCore):
50245         * bindings/js/JSImageConstructor.cpp:
50246         (WebCore):
50247         * bindings/js/JSNodeFilterCondition.cpp:
50248         (WebCore):
50249         * bindings/js/JSWorkerContextBase.cpp:
50250         (WebCore):
50251         * bindings/scripts/CodeGeneratorJS.pm:
50252         (GenerateImplementation):
50253         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50254         (WebCore):
50255         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50256         (WebCore):
50257         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50258         (WebCore):
50259         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50260         (WebCore):
50261         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50262         (WebCore):
50263         * bindings/scripts/test/JS/JSTestException.cpp:
50264         (WebCore):
50265         * bindings/scripts/test/JS/JSTestInterface.cpp:
50266         (WebCore):
50267         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50268         (WebCore):
50269         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50270         (WebCore):
50271         * bindings/scripts/test/JS/JSTestNode.cpp:
50272         (WebCore):
50273         * bindings/scripts/test/JS/JSTestObj.cpp:
50274         (WebCore):
50275         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50276         (WebCore):
50277         * bridge/runtime_method.cpp:
50278         (JSC):
50279
50280 2012-10-10  Brady Eidson  <beidson@apple.com>
50281
50282         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50283         https://bugs.webkit.org/show_bug.cgi?id=98976
50284
50285         Reviewed by Anders Carlsson.
50286
50287         No new tests (No change in behavior).
50288
50289         * WebCore.exp.in:
50290         * html/ImageDocument.cpp:
50291         (WebCore::ImageDocumentParser::appendBytes):
50292         (WebCore::ImageDocumentParser::finish):
50293         * inspector/InspectorPageAgent.cpp:
50294         (WebCore::InspectorPageAgent::mainResourceContent):
50295         (WebCore::InspectorPageAgent::sharedBufferContent):
50296         (WebCore):
50297         (WebCore::InspectorPageAgent::dataContent):
50298         * inspector/InspectorPageAgent.h:
50299         * inspector/InspectorResourceAgent.cpp:
50300         (WebCore::InspectorResourceAgent::didFinishLoading):
50301         (WebCore::InspectorResourceAgent::didFailLoading):
50302         * loader/DocumentLoader.cpp:
50303         (WebCore::DocumentLoader::mainResourceData):
50304         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50305         (WebCore::DocumentLoader::maybeCreateArchive):
50306         (WebCore::DocumentLoader::mainResource):
50307         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50308         * loader/DocumentLoader.h:
50309         (WebCore):
50310         (DocumentLoader):
50311         * loader/ResourceBuffer.cpp:
50312         (WebCore::ResourceBuffer::append):
50313         (WebCore):
50314         (WebCore::ResourceBuffer::clear):
50315         * loader/ResourceBuffer.h:
50316         (ResourceBuffer):
50317         * loader/ResourceLoader.cpp:
50318         (WebCore::ResourceLoader::resourceData):
50319         (WebCore::ResourceLoader::addData):
50320         (WebCore::ResourceLoader::willStopBufferingData):
50321         * loader/ResourceLoader.h:
50322         (WebCore):
50323         (ResourceLoader):
50324         * loader/SubresourceLoader.cpp:
50325         (WebCore::SubresourceLoader::didReceiveResponse):
50326         (WebCore::SubresourceLoader::sendDataToResource):
50327         (WebCore::SubresourceLoader::didFinishLoading):
50328         * loader/appcache/ApplicationCacheGroup.cpp:
50329         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50330
50331 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50332
50333         Web Inspector: node search does not work with elements on touch start listener
50334         https://bugs.webkit.org/show_bug.cgi?id=95252
50335
50336         Reviewed by Pavel Feldman.
50337
50338         Added new InspectorInstrumentation::handleTouchEvent() method which
50339         will prevent a touch handler from firing and inspect and element if we
50340         are already searching for a node to highlight.
50341         Now when a user has chosen to inspect element (magnifying glass icon)
50342         and touches on a page the event will be directed to inspector and
50343         handled appropriately.
50344
50345         Not testable.
50346
50347         * inspector/InspectorDOMAgent.cpp:
50348         (WebCore::InspectorDOMAgent::handleTouchEvent):
50349         (WebCore):
50350         * inspector/InspectorDOMAgent.h:
50351         (InspectorDOMAgent):
50352         * inspector/InspectorInstrumentation.cpp:
50353         (WebCore):
50354         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50355         * inspector/InspectorInstrumentation.h:
50356         (InspectorInstrumentation):
50357         (WebCore::InspectorInstrumentation::handleTouchEvent):
50358         (WebCore):
50359         * page/EventHandler.cpp:
50360         (WebCore::EventHandler::handleTouchEvent):
50361
50362 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50363
50364         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50365         https://bugs.webkit.org/show_bug.cgi?id=99082
50366
50367         Reviewed by Rob Buis.
50368
50369         Adding support for secure ProtectionSpaces in Credentials
50370         to prevent credentials from being overwritten/used when the user
50371         accesses both versions of the same url.
50372
50373         PR 199457
50374
50375         The issue was the secure/non-secure version of the same protocol
50376         were using the same ProtectionSpace enum in the network stack. When
50377         the credentials are saved, it will overwrite each other since the
50378         protection object is identical.
50379
50380         The fix is to use the WebKit provided secure enums when the protcol is secure.
50381
50382         To test this, access a restricted site that is running on http. Save the
50383         password and access the same restricted site (same domain
50384         and path) but on https. The browser should prompt for credentials.
50385
50386         * platform/network/blackberry/NetworkJob.cpp:
50387         (WebCore::NetworkJob::notifyAuthReceived):
50388         (WebCore::NetworkJob::handleFTPHeader):
50389         (WebCore::NetworkJob::sendRequestWithCredentials):
50390         (WebCore::NetworkJob::storeCredentials):
50391         * platform/network/blackberry/NetworkManager.cpp:
50392         (WebCore::NetworkManager::startJob):
50393
50394 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50395
50396         [texmap] logic error in BitmapTextureGL::updateContents
50397         https://bugs.webkit.org/show_bug.cgi?id=98969
50398
50399         Reviewed by Noam Rosenthal.
50400
50401         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50402         evaluates to true. Change it to correct test 
50403         (bytesPerLine == targetRect.width() * 4)
50404
50405         No new tests because no functional change.
50406
50407         * platform/graphics/texmap/TextureMapperGL.cpp:
50408         (WebCore::BitmapTextureGL::updateContents):
50409
50410 2012-10-11  Dan Bernstein  <mitz@apple.com>
50411
50412         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50413         https://bugs.webkit.org/show_bug.cgi?id=99009
50414
50415         Reviewed by John Sullivan.
50416
50417         Test: fast/text/text-combine-width-after-style-change.html
50418
50419         * rendering/RenderCombineText.cpp:
50420         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50421         ensure that combineText() is called on the next layout.
50422
50423 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50424
50425         accelerated compositing does not work with ati driver
50426         https://bugs.webkit.org/show_bug.cgi?id=97472
50427
50428         Reviewed by Martin Robinson.
50429
50430         Create m_parentWindow at positive position. Otherwise, parts of it are
50431         not displayed on ati drivers.
50432
50433         Covered by existing tests.
50434
50435         * platform/gtk/RedirectedXCompositeWindow.cpp:
50436         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50437
50438 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50439
50440         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50441         https://bugs.webkit.org/show_bug.cgi?id=98878
50442
50443         Reviewed by Kenneth Russell.
50444
50445         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50446         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50447         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50448
50449         No new tests.
50450
50451         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50452         (WebCore::JPEGImageDecoder::outputScanlines):
50453
50454 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50455
50456         Web Inspector: Preview HTML in ajax responses in network panel
50457         https://bugs.webkit.org/show_bug.cgi?id=99066
50458
50459         Reviewed by Yury Semikhatsky.
50460
50461         HTML preview is now shown for XHR responses with text/html mime types.
50462         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50463         Also extracted a method to generate dataURL from resource/request content.
50464
50465         * inspector/front-end/NetworkRequest.js:
50466         (WebInspector.NetworkRequest):
50467         (WebInspector.NetworkRequest.prototype.populateImageSource):
50468         (WebInspector.NetworkRequest.prototype.asDataURL):
50469         * inspector/front-end/RequestHTMLView.js:
50470         (WebInspector.RequestHTMLView):
50471         (WebInspector.RequestHTMLView.prototype._createIFrame):
50472         * inspector/front-end/RequestPreviewView.js:
50473         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50474         * inspector/front-end/Resource.js:
50475         (WebInspector.Resource.prototype.populateImageSource):
50476         * inspector/front-end/ResourceUtils.js:
50477         (WebInspector.contentAsDataURL):
50478
50479 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50480
50481         Regression(r131058): Broke EFL build
50482         https://bugs.webkit.org/show_bug.cgi?id=99079
50483
50484         Unreviewed build fix.
50485
50486         Use iterator::value instead of iterator::second to fix
50487         build break after r131058.
50488
50489         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50490         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50491
50492 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50493
50494         Always enable the experiments tab for WebKit nightly
50495
50496         Web Inspector: Enabling experiments tab in WebKit nightly.
50497         https://bugs.webkit.org/show_bug.cgi?id=98923
50498
50499         Reviewed by Pavel Feldman.
50500
50501         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50502         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50503         for Chromium. They can also be overridden as before (in Chromium)
50504
50505         * inspector/front-end/Settings.js:
50506         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50507
50508 2012-10-11  Hayato Ito  <hayato@chromium.org>
50509
50510         Support re-projection for Shadow DOM.
50511         https://bugs.webkit.org/show_bug.cgi?id=97151
50512
50513         Reviewed by Dimitri Glazkov.
50514
50515         Update node distribution algorithm so that nodes can be re-projected to insertion points
50516         in nested shadow subtree.
50517
50518         See the latest Shadow DOM spec for what 're-projected' means:
50519         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50520         Also see the related W3C bug:
50521         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50522
50523         Since this change breaks existing behavior, we have to update several code at once, which includes:
50524         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50525         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50526           resolve re-projection transparently.
50527         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50528           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50529           member function so that clients of the walker can know whether the walker is just crossing
50530           insertion points for a re-projected node.
50531         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50532           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50533
50534         I've also updated existing layout tests and added some layout tests for re-projection.
50535         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50536
50537         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50538                fast/dom/shadow/shadow-dom-event-dispatching.html
50539                fast/dom/shadow/shadowdom-reprojection-1.html
50540                fast/dom/shadow/shadowdom-reprojection-2.html
50541
50542         * dom/ComposedShadowTreeWalker.cpp:
50543         (WebCore::resolveReprojection):
50544         (WebCore):
50545         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50546         (WebCore::ComposedShadowTreeWalker::traverseParent):
50547         (WebCore::AncestorChainWalker::AncestorChainWalker):
50548         (WebCore::AncestorChainWalker::parent):
50549         * dom/ComposedShadowTreeWalker.h:
50550         (AncestorChainWalker):
50551         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50552         * dom/EventDispatcher.cpp:
50553         (WebCore::EventRelatedTargetAdjuster::adjust):
50554         (WebCore::EventDispatcher::ensureEventAncestors):
50555         * dom/TreeScope.cpp:
50556         (WebCore::TreeScope::focusedNode):
50557         * html/HTMLLIElement.cpp:
50558         (WebCore::HTMLLIElement::attach):
50559         * html/shadow/ContentDistributor.cpp:
50560         (WebCore::ContentDistributor::distribute):
50561         * page/EventHandler.cpp:
50562         (WebCore::EventHandler::updateMouseEventTargetNode):
50563
50564 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50565
50566         Make ContentSelectorQuery work when siblings are passed explicitly.
50567         https://bugs.webkit.org/show_bug.cgi?id=96990
50568
50569         Reviewed by Dimitri Glazkov.
50570
50571         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50572         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50573
50574         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50575         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50576
50577         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50578
50579         * GNUmakefile.list.am:
50580         * Target.pri:
50581         * WebCore.gypi:
50582         * WebCore.vcproj/WebCore.vcproj:
50583         * WebCore.xcodeproj/project.pbxproj:
50584         * css/SelectorChecker.cpp:
50585         (WebCore):
50586         * css/SelectorChecker.h:
50587         * css/SiblingTraversalStrategies.h: Added.
50588         (WebCore):
50589         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50590         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50591         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50592         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50593         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50594         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50595         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50596         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50597         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50598         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50599         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50600         siblings. This strategy takes a vector of node which we traverse.
50601         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50602         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50603         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50604         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50605         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50606         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50607         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50608         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50609         * css/StyleResolver.cpp:
50610         * html/shadow/ContentDistributor.cpp:
50611         (WebCore::ContentDistributor::distributeSelectionsTo):
50612         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50613         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50614         (WebCore):
50615         (WebCore::ContentSelectorChecker::checkContentSelector):
50616         (WebCore::ContentSelectorDataList::initialize):
50617         (WebCore::ContentSelectorDataList::matches):
50618         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50619         (WebCore::ContentSelectorQuery::matches):
50620         * html/shadow/ContentSelectorQuery.h:
50621         (ContentSelectorChecker):
50622         (WebCore):
50623         (ContentSelectorDataList):
50624         (ContentSelectorQuery):
50625
50626 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50627
50628         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50629         https://bugs.webkit.org/show_bug.cgi?id=99073
50630
50631         Reviewed by Noam Rosenthal.
50632
50633         Stop leaking GraphicsContextPlatformPrivate::shadow.
50634
50635         No change in behavior so no new tests.
50636
50637         * platform/graphics/qt/GraphicsContextQt.cpp:
50638         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50639         Always destroy shadow. It is obviously owned by the context so it has
50640         nothing to do with the erly return.
50641
50642 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50643
50644         WebIDL: overloaded methods prevent number -> string conversion
50645         https://bugs.webkit.org/show_bug.cgi?id=85326
50646
50647         Reviewed by Kentaro Hara.
50648
50649         Make the default behavior for overloaded methods matching DOMString arguments match the
50650         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50651         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50652         boolean, etc) via the StrictTypeChecking attribute.
50653
50654         Tests: storage/indexeddb/cursor-overloads.html
50655                storage/indexeddb/legacy-constants.html
50656                ... and run-bindings-tests
50657
50658         * Modules/indexeddb/IDBCursor.cpp:
50659         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50660         * Modules/indexeddb/IDBCursor.h:
50661         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50662         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50663         * Modules/indexeddb/IDBDatabase.h:
50664         (IDBDatabase):
50665         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50666         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50667         (WebCore::IDBIndex::openCursor):
50668         (WebCore::IDBIndex::openKeyCursor):
50669         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50670         (IDBIndex):
50671         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50672         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50673         (WebCore::IDBObjectStore::openCursor):
50674         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50675         (IDBObjectStore):
50676         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50677         * Modules/indexeddb/IDBTransaction.cpp:
50678         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50679         * Modules/indexeddb/IDBTransaction.h:
50680         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50681         (GenerateParametersCheckExpression):
50682         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50683         (GenerateParametersCheckExpression):
50684         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50685         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50686         (WebCore):
50687         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50688         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50689         plus a new DOMString overload w/o it.
50690         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50691         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50692         (TestObjV8Internal):
50693         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50694         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50695         * xml/XMLHttpRequest.idl: Ditto.
50696
50697 2012-10-11  Justin Novosad  <junov@chromium.org>
50698
50699         [Chromium][Mac] r130994 seems to break chromium gpu test
50700         https://bugs.webkit.org/show_bug.cgi?id=98995
50701
50702         Reviewed by Stephen White.
50703
50704         Removing unnecessary assertion that was based on an invalid assumption
50705         that 2d canvas draw operations were always called from within WebThread
50706         tasks.
50707
50708         Test: Canvas2DAllowed chromium gpu_test
50709
50710         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50711         (WebCore::Canvas2DLayerManager::willProcessTask):
50712
50713 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50714
50715         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50716         https://bugs.webkit.org/show_bug.cgi?id=98247
50717
50718         Reviewed by Kenneth Rohde Christiansen.
50719
50720         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50721
50722         No new tests, covered by existing tests. Actually the lack of the implementation made
50723         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50724         fast/text/wide-zero-width-space.html fail on EFL.
50725
50726         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50727         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50728
50729 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50730
50731         F4 key should open the picker popup on Windows and Linux
50732         https://bugs.webkit.org/show_bug.cgi?id=98754
50733
50734         Reviewed by Kent Tamura.
50735
50736         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50737
50738         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50739
50740         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50741         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50742         * rendering/RenderTheme.cpp:
50743         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50744         (WebCore):
50745         * rendering/RenderTheme.h:
50746         (RenderTheme):
50747         * rendering/RenderThemeChromiumLinux.cpp:
50748         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50749         (WebCore):
50750         * rendering/RenderThemeChromiumLinux.h:
50751         * rendering/RenderThemeChromiumWin.cpp:
50752         (WebCore):
50753         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50754         * rendering/RenderThemeChromiumWin.h:
50755         (RenderThemeChromiumWin):
50756
50757 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50758
50759         Web Inspector: Zebra stripe the console
50760         https://bugs.webkit.org/show_bug.cgi?id=98701
50761
50762         Reviewed by Pavel Feldman.
50763
50764         Add .console-message:hover rule to lightly highlight the message line.
50765
50766         * inspector/front-end/inspector.css:
50767         (.console-message:hover):
50768
50769 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50770
50771         Web Inspector: Filter out embedder injected content scripts
50772         https://bugs.webkit.org/show_bug.cgi?id=99039
50773
50774         Reviewed by Yury Semikhatsky.
50775
50776         * inspector/front-end/NetworkUISourceCodeProvider.js:
50777         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50778
50779 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50780
50781         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50782         https://bugs.webkit.org/show_bug.cgi?id=99042
50783
50784         One can't type in the inspector console after 131004.
50785
50786         * CMakeLists.txt:
50787         * GNUmakefile.list.am:
50788         * Target.pri:
50789         * WebCore.gypi:
50790         * WebCore.vcproj/WebCore.vcproj:
50791         * WebCore.xcodeproj/project.pbxproj:
50792         * dom/DOMAllInOne.cpp:
50793         * dom/Element.cpp:
50794         (WebCore::Element::attach):
50795         (WebCore::Element::detach):
50796         (WebCore::Element::recalcStyle):
50797         * dom/Element.h:
50798         (WebCore):
50799         (Element):
50800         * dom/ElementRareData.h:
50801         (ElementRareData):
50802         * dom/Node.cpp:
50803         (WebCore::checkAcceptChild):
50804         * dom/Node.h:
50805         (Node):
50806         * dom/NodeRenderingContext.cpp:
50807         (WebCore::NodeRenderingContext::nextRenderer):
50808         * dom/PseudoElement.cpp: Removed.
50809         * dom/PseudoElement.h: Removed.
50810         * rendering/HitTestResult.cpp:
50811         (WebCore::HitTestResult::setInnerNode):
50812         (WebCore::HitTestResult::setInnerNonSharedNode):
50813         * rendering/RenderBlock.cpp:
50814         (WebCore::RenderBlock::styleDidChange):
50815         (WebCore::RenderBlock::updateBeforeAfterContent):
50816         (WebCore):
50817         (WebCore::RenderBlock::splitBlocks):
50818         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50819         (WebCore::RenderBlock::createReplacementRunIn):
50820         (WebCore::RenderBlock::renderName):
50821         * rendering/RenderBlock.h:
50822         (RenderBlock):
50823         * rendering/RenderButton.cpp:
50824         (WebCore::RenderButton::updateBeforeAfterContent):
50825         (WebCore):
50826         * rendering/RenderButton.h:
50827         (RenderButton):
50828         * rendering/RenderCounter.cpp:
50829         (WebCore::RenderCounter::originalText):
50830         * rendering/RenderDeprecatedFlexibleBox.cpp:
50831         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50832         * rendering/RenderGrid.cpp:
50833         (WebCore::RenderGrid::renderName):
50834         * rendering/RenderInline.cpp:
50835         (WebCore::RenderInline::styleDidChange):
50836         (WebCore::RenderInline::addChildIgnoringContinuation):
50837         (WebCore::RenderInline::splitInlines):
50838         (WebCore::RenderInline::renderName):
50839         * rendering/RenderListItem.cpp:
50840         (WebCore::RenderListItem::updateMarkerLocation):
50841         * rendering/RenderMultiColumnBlock.cpp:
50842         (WebCore::RenderMultiColumnBlock::renderName):
50843         * rendering/RenderObject.cpp:
50844         (WebCore::RenderObject::createObject):
50845         * rendering/RenderObject.h:
50846         (WebCore::RenderObject::generatingNode):
50847         * rendering/RenderObjectChildList.cpp:
50848         (WebCore):
50849         (WebCore::findBeforeAfterParent):
50850         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50851         (WebCore::createRendererForBeforeAfterContent):
50852         (WebCore::ensureBeforeAfterContainer):
50853         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50854         * rendering/RenderObjectChildList.h:
50855         (RenderObjectChildList):
50856         * rendering/RenderRubyText.cpp:
50857         (WebCore::RenderRubyText::updateBeforeAfterContent):
50858         (WebCore):
50859         * rendering/RenderRubyText.h:
50860         (RenderRubyText):
50861         * rendering/RenderTableCell.h:
50862         (WebCore::RenderTableCell::renderName):
50863         * rendering/RenderTableRow.cpp:
50864         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50865         (WebCore):
50866         (WebCore::RenderTableRow::styleDidChange):
50867         * rendering/RenderTableRow.h:
50868         (RenderTableRow):
50869         (WebCore::RenderTableRow::renderName):
50870         * rendering/RenderTableSection.cpp:
50871         (WebCore::RenderTableSection::addChild):
50872         * rendering/RenderTableSection.h:
50873         (WebCore::RenderTableSection::renderName):
50874         * rendering/RenderTreeAsText.cpp:
50875         (WebCore::RenderTreeAsText::writeRenderObject):
50876
50877 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50878
50879         REGRESSION (r96393): In some cases, generated content is never shown
50880         https://bugs.webkit.org/show_bug.cgi?id=88196
50881
50882         Reviewed by Antti Koivisto.
50883
50884         Elements with style specified from an attribute selector in conjunction
50885         with a pseudo-element should not take on the shared style of their
50886         previous matching sibling (if any).
50887
50888         The problem here is that an attribute selector appended by a pseudo-element
50889         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50890         in StyleResolver::locateSharedStyle().
50891
50892         This is because of the way pseudo-elements are handled in
50893         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50894         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50895         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50896         and since the current element's style is still not available we fail this
50897         initial check and return SelectorFailsLocally from checkSelector(). This is
50898         incorrect behavior since the element does have an attribute selector specified
50899         for it.
50900
50901         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50902         SelectorChecker's mode should be set to SharingRules before making the
50903         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50904
50905         Existing Mode value: CollectingRules although appropriate cannot be used in this
50906         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50907
50908         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50909
50910         * css/SelectorChecker.cpp:
50911         (WebCore::SelectorChecker::checkSelector):
50912         Added additional check for SelectorChecker's mode: SharingRules when
50913         trying to match for the pseudo-element selector.
50914
50915         * css/SelectorChecker.h:
50916         Added SharingRules to Mode enum.
50917
50918         * css/StyleResolver.cpp:
50919         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50920         (WebCore::StyleResolver::locateSharedStyle):
50921         * css/StyleResolver.h:
50922         (StyleResolver):
50923         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50924         Also, setting the SelectorChecker's mode to SharingRules before calling
50925         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50926
50927 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50928
50929         Some shadow roots are not showing up in Inspector.
50930         https://bugs.webkit.org/show_bug.cgi?id=88251
50931
50932         Reviewed by Pavel Feldman.
50933
50934         When an element has only text node, its shadow root is not showing up in Inspector, since
50935         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50936         added.
50937
50938         Test: inspector/elements/shadow-root.html
50939
50940         * inspector/front-end/DOMAgent.js:
50941         (WebInspector.DOMNode):
50942         (WebInspector.DOMNode.prototype.hasShadowRoots):
50943         * inspector/front-end/ElementsTreeOutline.js:
50944
50945 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50946
50947         [Qt] More responsive scroll animations
50948         https://bugs.webkit.org/show_bug.cgi?id=99016
50949
50950         Reviewed by Jocelyn Turcotte.
50951
50952         Changes the scrolling animations so they accelerate faster than they deccelerate,
50953         making the animation respond faster to user input.
50954
50955         * platform/ScrollAnimatorNone.cpp:
50956         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50957         * platform/ScrollAnimatorNone.h:
50958         (ScrollAnimatorNone):
50959
50960 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
50961
50962         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
50963         https://bugs.webkit.org/show_bug.cgi?id=99003
50964
50965         Reviewed by Kenneth Rohde Christiansen.
50966
50967         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
50968         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
50969
50970         test: fast/media/w3c/test_media_queries.html
50971
50972         * css/MediaQueryEvaluator.cpp:
50973         (WebCore::compareAspectRatioValue):
50974         (WebCore):
50975         (WebCore::aspect_ratioMediaFeatureEval):
50976         (WebCore::device_aspect_ratioMediaFeatureEval):
50977         * css/MediaQueryExp.cpp:
50978         (WebCore::MediaQueryExp::MediaQueryExp):
50979
50980 2012-10-11  Zeno Albisser  <zeno@webkit.org>
50981
50982         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
50983         https://bugs.webkit.org/show_bug.cgi?id=98501
50984
50985         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
50986         This is necessary in order to implement GraphicsSurface for Windows.
50987         Depending on the platform a GraphicsSurfaceToken might contain a
50988         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
50989         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
50990         can be 64bit already.
50991
50992         Reviewed by Noam Rosenthal.
50993
50994         * Target.pri:
50995         * platform/graphics/qt/GraphicsContext3DQt.cpp:
50996         (GraphicsContext3DPrivate):
50997         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
50998         * platform/graphics/surfaces/GraphicsSurface.cpp:
50999         (WebCore::GraphicsSurface::create):
51000         (WebCore::GraphicsSurface::exportToken):
51001         * platform/graphics/surfaces/GraphicsSurface.h:
51002         (GraphicsSurface):
51003         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
51004         (WebCore):
51005         (GraphicsSurfaceToken):
51006         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
51007         (WebCore::GraphicsSurfaceToken::operator!=):
51008         (WebCore::GraphicsSurfaceToken::isValid):
51009         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
51010         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
51011         (WebCore::GraphicsSurfacePrivate::token):
51012         (GraphicsSurfacePrivate):
51013         (WebCore::GraphicsSurface::platformExport):
51014         (WebCore::GraphicsSurface::platformImport):
51015         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
51016         (WebCore::GraphicsSurface::platformExport):
51017         (WebCore::GraphicsSurface::platformImport):
51018         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
51019         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
51020         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
51021         * platform/graphics/texmap/TextureMapperBackingStore.h:
51022         (TextureMapperSurfaceBackingStore):
51023         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
51024         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
51025         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
51026
51027 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
51028
51029         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
51030         https://bugs.webkit.org/show_bug.cgi?id=98887
51031
51032         Reviewed by Vsevolod Vlasov.
51033
51034         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
51035
51036         Test: inspector/elements/breadcrumb-updates.html
51037
51038         * inspector/front-end/ElementsPanel.js:
51039         (WebInspector.ElementsPanel):
51040         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
51041
51042 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
51043
51044         Final newline (LF or CRLF) in paste buffer is converted to space
51045         https://bugs.webkit.org/show_bug.cgi?id=80838
51046
51047         Reviewed by Ryosuke Niwa.
51048
51049         Currently newline characters are replaced with spaces when pasted
51050         to text input. This behavior was introduced in r37539, with the
51051         intention to follow the FireFox's behavior (see
51052         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
51053         truncates newlines at the end of pasted text, instead of replacing
51054         them with spaces. So this patch changes TextFieldInputType to cut
51055         trailing newlines of inserted text.
51056
51057         Test: fast/forms/paste-multiline-text-input.html
51058
51059         * html/TextFieldInputType.cpp:
51060         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
51061         Truncates trailing newlines.
51062
51063 2012-10-11  Kent Tamura  <tkent@chromium.org>
51064
51065         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51066         https://bugs.webkit.org/show_bug.cgi?id=98992
51067
51068         * platform/text/LocaleICU.cpp:
51069         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
51070
51071 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
51072
51073         Web Inspector: The 'X' of the close button of Settings view is not centered
51074         https://bugs.webkit.org/show_bug.cgi?id=99008
51075
51076         Reviewed by Alexander Pavlov.
51077
51078         Fixed text positioning in CSS.
51079
51080         * inspector/front-end/helpScreen.css:
51081         (.help-close-button):
51082
51083 2012-10-11  Kent Tamura  <tkent@chromium.org>
51084
51085         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51086         https://bugs.webkit.org/show_bug.cgi?id=98992
51087
51088         Reviewed by Kentaro Hara.
51089
51090         - Move the RTL detection code in
51091           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
51092         - Introduce Localizer::isRTL as a pure virtual function
51093         - Implement LocaleMac::isRTL with native API
51094         - Implement LocaleICU::isRTL with ICU API
51095         - Add dummy implementation: LocaleNone::isRTL
51096
51097         Add some tests to WebKit/chromium/tests/.
51098
51099         * platform/text/Localizer.h:
51100         (Localizer): Declare pure virtual isRTL.
51101
51102         * platform/text/LocaleICU.h:
51103         (LocaleICU): Declare isRTL.
51104         * platform/text/LocaleICU.cpp:
51105         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51106
51107         * platform/text/LocaleNone.cpp:
51108         (LocaleNone): Declare isRTL.
51109         (WebCore::LocaleNone::isRTL): Added.
51110
51111         * platform/text/LocaleWin.h:
51112         (LocaleWin): Declare isRTL.
51113         * platform/text/LocaleWin.cpp:
51114         (WebCore::LocaleWin::isRTL): Implemented.
51115
51116         * platform/text/mac/LocaleMac.h:
51117         (LocaleMac): Declare isRTL.
51118         * platform/text/mac/LocaleMac.mm:
51119         (WebCore::LocaleMac::isRTL): Implemented.
51120
51121 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51122
51123         Web Inspector: TypeError in ConsoleMessage.js
51124         https://bugs.webkit.org/show_bug.cgi?id=98999
51125
51126         Reviewed by Alexander Pavlov.
51127
51128         This patch is based on patch by John J. Barton.
51129         Added a check that stack length is equal.
51130
51131         * inspector/front-end/ConsoleMessage.js:
51132         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51133
51134 2012-10-10  Jer Noble  <jer.noble@apple.com>
51135
51136         Disallow full screen mode keyboard access by default.
51137         https://bugs.webkit.org/show_bug.cgi?id=98971
51138         <rdar://problem/12474226>
51139
51140         Reviewed by Sam Weinig.
51141
51142         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51143
51144         * dom/Document.cpp:
51145         (WebCore::Document::requestFullScreenForElement):
51146
51147 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51148
51149         Web Inspector: NMI instrument HTMLCanvas element.
51150         https://bugs.webkit.org/show_bug.cgi?id=98917
51151
51152         Reviewed by Yury Semikhatsky.
51153
51154         It also includes non intrusive instrumentation for skia classes.
51155
51156         Test: inspector/profiler/memory-instrumentation-canvas.html
51157
51158         * WebCore.gypi:
51159         * html/HTMLCanvasElement.cpp:
51160         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51161         (WebCore):
51162         * html/HTMLCanvasElement.h:
51163         (HTMLCanvasElement):
51164         * platform/graphics/ImageBuffer.cpp:
51165         (WebCore::ImageBuffer::reportMemoryUsage):
51166         (WebCore):
51167         * platform/graphics/ImageBuffer.h:
51168         (ImageBuffer):
51169         * platform/graphics/chromium/ImageBufferDataSkia.h:
51170         (ImageBufferData):
51171         * platform/graphics/skia/ImageBufferSkia.cpp:
51172         (WebCore::ImageBufferData::reportMemoryUsage):
51173         (WebCore):
51174         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51175         (reportMemoryUsage):
51176         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51177         * platform/graphics/skia/NativeImageSkia.cpp:
51178
51179 2012-10-10  Mike West  <mkwst@google.com>
51180
51181         Document calls createElement with the wrong parameters.
51182         https://bugs.webkit.org/show_bug.cgi?id=98907
51183
51184         Reviewed by Kent Tamura.
51185
51186         Document::importNode calls Document::createElement with a QualifiedName
51187         and ExceptionCode. The Document::createElement that takes a
51188         QualifiedName doesn't generate an exception; the second argument is a
51189         bool, which the ExceptionCode autocasts into.
51190
51191         Changing the argument to an explicit bool shouldn't have any visible
51192         effect; no new tests are required.
51193
51194         * dom/Document.cpp:
51195         (WebCore::Document::importNode):
51196
51197 2012-10-10  Lianghui Chen  <liachen@rim.com>
51198
51199         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51200         https://bugs.webkit.org/show_bug.cgi?id=97397
51201         Internal PR: 186597.
51202
51203         Internally reviewed by Yong Li, Joe Mason.
51204         Reviewed by George Staikos.
51205
51206         Add a singleton AuthenticationChallengeManager to manage authentication
51207         challenge dialog. It does following things:
51208         Record page creation/deletion, so it knows what page is present or not.
51209         Record page visibility change so it knows when to display a dialog or not.
51210         Accept authentication challenge, and decide whether to postpone the
51211             challenge dialog based on whether there is active authentication challenge
51212             dialog already and whether its page is visible or not.
51213         When a challenge result comes back, notify the result to all clients
51214             authenticating for the same protection space, and then start the next
51215             authentication challenge from the same page, if there is one.
51216         When a page becomes visible, start the first authentication challenge
51217             dialog that has been blocked before.
51218         When an authentication challenge is requested, the NetworkJob will be
51219             deferred so its initial response will be saved while waiting for
51220             user decision on the challenge.
51221
51222         No new tests for platform specific internal change.
51223
51224         * PlatformBlackBerry.cmake:
51225         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51226         (WebCore):
51227         (ChallengeInfo):
51228         (WebCore::ChallengeInfo::ChallengeInfo):
51229         (AuthenticationChallengeManagerPrivate):
51230         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51231         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51232         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51233         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51234         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51235         (WebCore::AuthenticationChallengeManager::pageCreated):
51236         (WebCore::AuthenticationChallengeManager::pageDeleted):
51237         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51238         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51239         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51240         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51241         (WebCore::AuthenticationChallengeManager::instance):
51242         (WebCore::AuthenticationChallengeManager::init):
51243         * platform/blackberry/AuthenticationChallengeManager.h:
51244         (WebCore):
51245         (AuthenticationChallengeManager):
51246         * platform/blackberry/PageClientBlackBerry.h:
51247         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51248         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51249         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51250         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51251         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51252         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51253         (MediaPlayerPrivate):
51254         * platform/network/blackberry/NetworkJob.cpp:
51255         (WebCore::NetworkJob::NetworkJob):
51256         (WebCore::NetworkJob::~NetworkJob):
51257         (WebCore):
51258         (WebCore::NetworkJob::handleNotifyStatusReceived):
51259         (WebCore::NetworkJob::handleNotifyClose):
51260         (WebCore::NetworkJob::shouldReleaseClientResource):
51261         (WebCore::NetworkJob::sendRequestWithCredentials):
51262         (WebCore::NetworkJob::notifyChallengeResult):
51263         * platform/network/blackberry/NetworkJob.h:
51264         (NetworkJob):
51265
51266 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51267
51268         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51269         https://bugs.webkit.org/show_bug.cgi?id=82546
51270
51271         Reviewed by Beth Dakin.
51272
51273         When calling layerTreeAsText() inside the document load event,
51274         GraphicsLayerCA may have not flushed layers yet, so layer tree
51275         properties that are affected by flushing (tiled layer, visible
51276         rects) appeared flakey in tests.
51277         
51278         Fix by forcing a flush before dumping the layer tree.        
51279         
51280         * rendering/RenderLayerCompositor.cpp:
51281         (WebCore::RenderLayerCompositor::layerTreeAsText):
51282
51283 2012-10-10  Beth Dakin  <bdakin@apple.com>
51284
51285         https://bugs.webkit.org/show_bug.cgi?id=98984
51286         REGRESSION: Crash happens after we add non-top-level frame to the 
51287         ScrollingStateTree
51288
51289         Reviewed by Simon Fraser.
51290
51291         isRootLayer() can return true for layers that do not correspond to 
51292         the main frame. But we only want the ones that DO correspond to the 
51293         main frame!
51294         * rendering/RenderLayerCompositor.cpp:
51295         (WebCore::RenderLayerCompositor::updateBacking):
51296
51297 2012-10-10  Dan Bernstein  <mitz@apple.com>
51298
51299         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51300         https://bugs.webkit.org/show_bug.cgi?id=98961
51301
51302         Reviewed by Tim Horton.
51303
51304         Test: fast/text/text-combine-with-font-face.html
51305
51306         * css/CSSSegmentedFontFace.cpp:
51307         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51308         key used for entries in the font data table, so that we can return different
51309         font data for different width variants.
51310         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51311         use in the computation of the above key.
51312         * rendering/RenderCombineText.cpp:
51313         (WebCore::RenderCombineText::combineText): Added a local variable to store
51314         the font selector before changing the font description. Previously, by the time
51315         we tried to get the font selector from the font, it had already been cleared,
51316         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51317         could not be selected.
51318
51319 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51320
51321         Move :before and :after into the DOM        
51322         https://bugs.webkit.org/show_bug.cgi?id=95117
51323
51324         Reviewed by Eric Seidel.
51325
51326         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51327         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51328         the tree including generated content.
51329
51330         This allows the generated content to be treated as real nodes instead of anonymous and take
51331         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51332         lifecycle of generated content.
51333
51334         No new tests needed for now.
51335
51336         * CMakeLists.txt:
51337         * GNUmakefile.list.am:
51338         * Target.pri:
51339         * WebCore.gypi:
51340         * WebCore.vcproj/WebCore.vcproj:
51341         * WebCore.xcodeproj/project.pbxproj:
51342         * dom/DOMAllInOne.cpp:
51343         * dom/Element.cpp:
51344         (WebCore::Element::attach): Add generated content if needed.
51345         (WebCore::Element::detach): Remove all child generated content.
51346         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51347         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51348         (WebCore):
51349         (WebCore::Element::createPseudoElementIfNeeded):
51350         (WebCore::Element::beforePseudoElement):
51351         (WebCore::Element::afterPseudoElement):
51352         * dom/Element.h:
51353         (WebCore):
51354         (Element):
51355         * dom/ElementRareData.h:
51356         (ElementRareData):
51357         (WebCore::ElementRareData::setPseudoElement):
51358         (WebCore):
51359         (WebCore::ElementRareData::pseudoElement):
51360         * dom/Node.cpp:
51361         (WebCore::Node::pseudoAwarePreviousSibling):
51362         (WebCore):
51363         (WebCore::Node::pseudoAwareNextSibling):
51364         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51365         * dom/Node.h:
51366         (Node):
51367         (WebCore::Node::isPseudoElement):
51368         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51369         (WebCore::Node::virtualPseudoId):
51370         (WebCore::Node::isBeforePseudoElement):
51371         (WebCore::Node::isAfterPseudoElement):
51372         * dom/NodeRenderingContext.cpp:
51373         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51374         * dom/PseudoElement.cpp: Added.
51375         (WebCore):
51376         (WebCore::pseudoElementName):
51377         (WebCore::PseudoElement::PseudoElement):
51378         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51379         (WebCore::PseudoElement::customStyleForRenderer):
51380         (WebCore::PseudoElement::attach):
51381         (WebCore::PseudoElement::rendererIsNeeded):
51382         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51383         (WebCore::PseudoElement::didRecalcStyle):
51384         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51385         * dom/PseudoElement.h: Added.
51386         (WebCore):
51387         (PseudoElement):
51388         (WebCore::PseudoElement::create):
51389         (WebCore::toPseudoElement):
51390         * rendering/HitTestResult.cpp:
51391         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51392         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51393         * rendering/RenderBlock.cpp:
51394         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51395         (WebCore::RenderBlock::splitBlocks):
51396         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51397         (WebCore::RenderBlock::createReplacementRunIn):
51398         (WebCore::RenderBlock::renderName):
51399         * rendering/RenderBlock.h:
51400         (RenderBlock):
51401         * rendering/RenderButton.cpp:
51402         * rendering/RenderButton.h:
51403         (RenderButton):
51404         * rendering/RenderCounter.cpp:
51405         (WebCore::RenderCounter::originalText):
51406         * rendering/RenderDeprecatedFlexibleBox.cpp:
51407         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51408         * rendering/RenderGrid.cpp:
51409         (WebCore::RenderGrid::renderName):
51410         * rendering/RenderInline.cpp:
51411         (WebCore::RenderInline::styleDidChange):
51412         (WebCore::RenderInline::addChildIgnoringContinuation):
51413         (WebCore::RenderInline::splitInlines):
51414         (WebCore::RenderInline::renderName):
51415         * rendering/RenderListItem.cpp:
51416         (WebCore::RenderListItem::updateMarkerLocation):
51417         * rendering/RenderMultiColumnBlock.cpp:
51418         (WebCore::RenderMultiColumnBlock::renderName):
51419         * rendering/RenderObject.cpp:
51420         (WebCore::RenderObject::createObject):
51421         * rendering/RenderObject.h:
51422         (WebCore::RenderObject::isPseudoElement):
51423         (RenderObject):
51424         (WebCore::RenderObject::generatingNode):
51425         * rendering/RenderObjectChildList.cpp:
51426         * rendering/RenderObjectChildList.h:
51427         (RenderObjectChildList):
51428         * rendering/RenderRubyText.cpp:
51429         * rendering/RenderRubyText.h:
51430         (RenderRubyText):
51431         * rendering/RenderTableCell.h:
51432         (WebCore::RenderTableCell::renderName):
51433         * rendering/RenderTableRow.cpp:
51434         (WebCore::RenderTableRow::styleDidChange):
51435         * rendering/RenderTableRow.h:
51436         (WebCore::RenderTableRow::renderName):
51437         * rendering/RenderTableSection.cpp:
51438         (WebCore::RenderTableSection::addChild):
51439         * rendering/RenderTableSection.h:
51440         (WebCore::RenderTableSection::renderName):
51441         * rendering/RenderTreeAsText.cpp:
51442         (WebCore::RenderTreeAsText::writeRenderObject):
51443
51444 2012-10-10  Sam Weinig  <sam@webkit.org>
51445
51446         Add more Objective-C WebKit2 DOM API skeletons.
51447         https://bugs.webkit.org/show_bug.cgi?id=98981
51448
51449         Reviewed by Anders Carlsson.
51450
51451         * WebCore.exp.in:
51452         Add necessary export.
51453
51454 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51455
51456         Minimize the recent template explosion in SelectorChecker.
51457         https://bugs.webkit.org/show_bug.cgi?id=98829
51458
51459         Reviewed by Antti Koivisto.
51460
51461         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51462         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51463
51464         No new tests, no change in behavior.
51465
51466         * css/SelectorChecker.cpp:
51467         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51468         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51469         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51470         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51471         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51472         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51473         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51474         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51475         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51476         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51477         * css/SelectorChecker.h:
51478         (DOMTraversalStrategy): Changed into a class, rather than a template.
51479         (SelectorChecker): Turned back into a function.
51480
51481 2012-10-10  James Simonsen  <simonjam@chromium.org>
51482
51483         High res times should start at 0
51484         https://bugs.webkit.org/show_bug.cgi?id=84912
51485
51486         Reviewed by Tony Gentilcore.
51487
51488         Test: Existing Navigation Timing tests.
51489
51490         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51491         (WebCore):
51492         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51493         * inspector/InspectorResourceAgent.cpp:
51494         (WebCore::buildObjectForTiming):
51495         * loader/DocumentLoadTiming.cpp:
51496         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51497         (WebCore):
51498         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51499         (WebCore::DocumentLoadTiming::markNavigationStart):
51500         * loader/DocumentLoadTiming.h:
51501         (DocumentLoadTiming):
51502         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51503         (WebCore::DocumentLoadTiming::unloadEventStart):
51504         (WebCore::DocumentLoadTiming::unloadEventEnd):
51505         (WebCore::DocumentLoadTiming::redirectStart):
51506         (WebCore::DocumentLoadTiming::redirectEnd):
51507         (WebCore::DocumentLoadTiming::fetchStart):
51508         (WebCore::DocumentLoadTiming::responseEnd):
51509         (WebCore::DocumentLoadTiming::loadEventStart):
51510         (WebCore::DocumentLoadTiming::loadEventEnd):
51511         * page/PerformanceTiming.cpp:
51512         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51513         (WebCore::PerformanceTiming::unloadEventStart):
51514         (WebCore::PerformanceTiming::unloadEventEnd):
51515         (WebCore::PerformanceTiming::redirectStart):
51516         (WebCore::PerformanceTiming::redirectEnd):
51517         (WebCore::PerformanceTiming::fetchStart):
51518         (WebCore::PerformanceTiming::responseEnd):
51519         (WebCore::PerformanceTiming::loadEventStart):
51520         (WebCore::PerformanceTiming::loadEventEnd):
51521         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51522         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51523         * platform/network/ResourceLoadTiming.cpp:
51524         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51525         * platform/network/ResourceLoadTiming.h:
51526         (ResourceLoadTiming):
51527
51528 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51529
51530         Tests failure on Chromium Mac after r130821
51531         https://bugs.webkit.org/show_bug.cgi?id=98865
51532
51533         Reviewed by Adam Barth.
51534
51535         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51536         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51537         cause of this issue.
51538
51539         * rendering/RenderBlockLineLayout.cpp:
51540         (WebCore::setLogicalWidthForTextRun):
51541
51542 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51543
51544         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51545         https://bugs.webkit.org/show_bug.cgi?id=98755
51546
51547         Reviewed by Eric Seidel.
51548
51549         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51550         encounters an <altglyph> tag, immediately replaces the font data for a
51551         glyph with font data for the primary font, presumably to meet the SVG
51552         spec requirement: "If the references to alternate glyphs do not result
51553         in successful identification of alternate glyphs to use, then the
51554         character(s) that are inside of the ‘altGlyph’ element are rendered as
51555         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51556
51557         If the alt glyph is not then found we are in the case from the spec
51558         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51559         entry for the character with primary font data, which we should not do
51560         because the glyph page might be used in some place that does not have
51561         the alt glyph tag.
51562
51563         Furthermore, this causes object lifetime problems for font data, because
51564         in cases where the font data that is replaced is for the system fallback
51565         font the GlyphPage will live forever with no knowldege that it contains
51566         font data pointers into font data other that the system fallback. The
51567         replaced font data may be deleted while the pointer lives on in the
51568         system fallback page.
51569
51570         The fix is simply not to replace the font data in the page.
51571
51572         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51573
51574         * rendering/svg/SVGTextRunRenderingContext.cpp:
51575         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51576         in the glyph page when the method has finished.
51577
51578 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51579
51580         column-count: 0 should not prevent margin-collapse through
51581         https://bugs.webkit.org/show_bug.cgi?id=65159
51582
51583         Reviewed by Tony Chang.
51584
51585         This patch makes "column-count:0" be properly recognized as invalid syntax,
51586         as it violates the property grammar in the spec.
51587
51588         Tests: fast/multicol/zeroColumnCount.html
51589
51590         * css/CSSParser.cpp:
51591         (WebCore::CSSParser::validUnit):
51592         (WebCore::CSSParser::parseValue):
51593         * css/CSSParser.h:
51594
51595 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51596
51597         [WK2] Safari crashes on error when using CFNetwork
51598         https://bugs.webkit.org/show_bug.cgi?id=98965
51599
51600         Reviewed by Sam Weinig.
51601
51602         The code of ResourceErrorMac when using CFNetwork was assuming
51603         there is always either a CFError or an NSError associated with
51604         any ResourceError.
51605
51606         This is not true on WebKit2 where error can be generic errors
51607         in the WebProcess (for example a cannotShowURLError).
51608         The code was crashing when trying to invoke function on the
51609         non-existing CFError.
51610
51611         This patch fixes the issue by handling that third case separately.
51612         If the ResourceError is a generic error, a new NSError is created,
51613         similarily to what is done in the non-CFNetwork case.
51614
51615         * platform/network/mac/ResourceErrorMac.mm:
51616         (WebCore::ResourceError::nsError):
51617
51618 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51619
51620         Invalid values for media query features are not handled
51621         https://bugs.webkit.org/show_bug.cgi?id=97006
51622
51623         Reviewed by Kenneth Rohde Christiansen.
51624
51625         This patch improves pass rate of CSS3 Media Queries test suite
51626         by making media expressions compliant with W3C specification. Few
51627         performance issues are fixed by removal of string comparison during
51628         media expression evaluation.
51629
51630         Tests: fast/media/w3c/test_media_queries.html
51631
51632         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51633         * css/MediaQuery.cpp:
51634         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51635         * css/MediaQueryEvaluator.cpp:
51636         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51637         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51638         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51639         * css/MediaQueryExp.cpp:
51640         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51641
51642 2012-10-10  Justin Novosad  <junov@chromium.org>
51643
51644         [Chromium] Smoother animation for non-RAF 2D canvas animations
51645         https://bugs.webkit.org/show_bug.cgi?id=97918
51646
51647         Reviewed by Stephen White.
51648
51649         Reduces animation jank by preventing the accumulation of multiple
51650         frames of backlog in the deferred canvas rendering queue. When the
51651         animation is more than one full frame ahead of the compositor, an
51652         immediate flush is triggered.  This takes into account overdraw
51653         elimination by the skip-on-clear optimization that is built-in to
51654         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51655         each frame to run without any rate limiting. This change also
51656         incidentally improves frame rate in many cases by providing more
51657         granular batching of GPU API calls, resulting in better pipelining
51658         through the command buffer.
51659
51660         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51661
51662         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51663         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51664         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51665         Called at the end of a task (usually a scheduled script action) that
51666         invoked 2d canvas rendering context methods. The end of the task
51667         marks the completion of a displayable frame. This method will trigger
51668         a flush if it detects that the layer has pending draw commands that
51669         are more that one frame old.
51670         (WebCore):
51671         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51672         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51673         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51674         (WebCore::Canvas2DLayerBridge::flush):
51675         (WebCore::Canvas2DLayerBridge::contextAcquired):
51676         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51677         (Canvas2DLayerBridge):
51678         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51679         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51680         (WebCore::Canvas2DLayerManager::willProcessTask):
51681         (WebCore):
51682         (WebCore::Canvas2DLayerManager::didProcessTask):
51683         (WebCore::Canvas2DLayerManager::layerDidDraw):
51684         * platform/graphics/chromium/Canvas2DLayerManager.h:
51685         (Canvas2DLayerManager):
51686
51687 2012-10-10  Beth Dakin  <bdakin@apple.com>
51688
51689         https://bugs.webkit.org/show_bug.cgi?id=98968
51690         REGRESSION: Unable to scroll with trackpad on some websites after 
51691         r130783
51692
51693         Reviewed by Simon Fraser.
51694
51695         This bug seems to reproduce mostly on web pages that require login. 
51696         The re-routing causes extra churn of the RenderLayerBacking, and we 
51697         end up destroying and re-creating the backing and therefore the 
51698         ScrollingStateNodes, and when the timing is just wrong we get into a 
51699         state where the ScrollingTree has a set of incorrect information. 
51700         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51701         the ScrollingTree in synch with their re-set data.
51702
51703         Tell the ScrollingStateTree that the root layer has changed.
51704         * page/scrolling/ScrollingCoordinator.cpp:
51705         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51706
51707         New virtual function will set every property as having changed.
51708         * page/scrolling/ScrollingStateNode.h:
51709         (WebCore::ScrollingStateNode::setHasChangedProperties):
51710         * page/scrolling/ScrollingStateScrollingNode.cpp:
51711         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51712         (WebCore):
51713         * page/scrolling/ScrollingStateScrollingNode.h:
51714
51715         When the root layer changes, make sure we update the ScrollingTree 
51716         appropriately by indicating that every property could have changed.
51717         * page/scrolling/ScrollingStateTree.cpp:
51718         (WebCore::ScrollingStateTree::rootLayerDidChange):
51719         (WebCore):
51720         * page/scrolling/ScrollingStateTree.h:
51721         (ScrollingStateTree):
51722
51723 2012-10-10  MORITA Hajime  <morrita@google.com>
51724
51725         [Chromium] Crash on SpellChecker::didCheck()
51726         https://bugs.webkit.org/show_bug.cgi?id=98476
51727
51728         Reviewed by Kent Tamura.
51729
51730         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51731         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51732         This chagne eliminates the problematic didCheck().
51733
51734         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51735
51736         * editing/SpellChecker.cpp:
51737         (WebCore::SpellChecker::didCheck):
51738
51739 2012-10-10  MORITA Hajime  <morrita@google.com>
51740
51741         https://bugs.webkit.org/show_bug.cgi?id=95664
51742         [Shadow DOM] should be able to be available without <style scoped>
51743
51744         Reviewed by Dimitri Glazkov.
51745
51746         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51747         and styleScopedEnabled() runtime guard. The flags now masks
51748         user visible bits of the code, rather than all of it.
51749         This change also eliminates some redundant guards for simplicity.
51750
51751         Test: fast/dom/shadow/style-scoped-not-enabled.html
51752
51753         * css/StyleResolver.cpp:
51754         (WebCore::StyleResolver::matchScopedAuthorRules):
51755         (WebCore::StyleResolver::locateCousinList):
51756         (WebCore::StyleResolver::canShareStyleWithElement):
51757         (WebCore::StyleResolver::locateSharedStyle):
51758         * css/StyleScopeResolver.cpp:
51759         (WebCore::StyleScopeResolver::scopeFor):
51760         * css/StyleScopeResolver.h:
51761         (WebCore):
51762         * html/HTMLStyleElement.cpp:
51763         (WebCore::HTMLStyleElement::HTMLStyleElement):
51764         (WebCore::HTMLStyleElement::parseAttribute):
51765         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51766         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51767         (WebCore::HTMLStyleElement::registerWithScopingNode):
51768         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51769         (WebCore::HTMLStyleElement::insertedInto):
51770         (WebCore::HTMLStyleElement::removedFrom):
51771         (WebCore::HTMLStyleElement::scoped):
51772         (WebCore::HTMLStyleElement::scopingElement):
51773         * html/HTMLStyleElement.h:
51774         (HTMLStyleElement):
51775         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51776         (WebCore::InternalSettings::Backup::Backup):
51777         (WebCore::InternalSettings::Backup::restoreTo):
51778         (WebCore::InternalSettings::setStyleScopedEnabled):
51779         (WebCore):
51780         * testing/InternalSettings.h: Exporsing a flag for testing.
51781         (Backup):
51782         (InternalSettings):
51783         * testing/InternalSettings.idl: Exporsing a flag for testing.
51784
51785 2012-10-10  Roger Fong  <roger_fong@apple.com>
51786
51787         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51788         https://bugs.webkit.org/show_bug.cgi?id=98470
51789
51790         Reviewed by Timothy Horton.
51791
51792         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51793         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51794         translated names. This fix makes these methods return the original variable names.
51795
51796         Tested using Khronos WebGL conformance suite:
51797         conformance/glsl/misc/glsl-long-variable-names.html
51798
51799         * platform/graphics/GraphicsContext3D.h:
51800         (GraphicsContext3D):
51801         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51802         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51803         (WebCore::GraphicsContext3D::getActiveAttrib):
51804         (WebCore::GraphicsContext3D::getActiveUniform):
51805         (WebCore):
51806         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51807         the mapped name.
51808
51809 2012-10-10 Brady Eidson  <beidson@apple.com>
51810
51811         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51812         https://bugs.webkit.org/show_bug.cgi?id=98952
51813
51814         Reviewed by Anders Carlsson.
51815
51816         No new tests (No behavior change).
51817
51818         * html/ImageDocument.cpp:
51819         (WebCore::ImageDocumentParser::appendBytes):
51820         (WebCore::ImageDocumentParser::finish):
51821         * loader/SubresourceLoader.cpp:
51822         (WebCore::SubresourceLoader::sendDataToResource):
51823         (WebCore::SubresourceLoader::didFinishLoading):
51824         * loader/cache/CachedCSSStyleSheet.cpp:
51825         (WebCore::CachedCSSStyleSheet::data):
51826         * loader/cache/CachedCSSStyleSheet.h:
51827         (WebCore):
51828         (CachedCSSStyleSheet):
51829         * loader/cache/CachedFont.cpp:
51830         (WebCore::CachedFont::data):
51831         * loader/cache/CachedFont.h:
51832         (WebCore):
51833         (CachedFont):
51834         * loader/cache/CachedImage.cpp:
51835         (WebCore::CachedImage::data):
51836         * loader/cache/CachedImage.h:
51837         (CachedImage):
51838         * loader/cache/CachedRawResource.cpp:
51839         (WebCore::CachedRawResource::data):
51840         * loader/cache/CachedRawResource.h:
51841         (CachedRawResource):
51842         * loader/cache/CachedResource.cpp:
51843         (WebCore::CachedResource::data):
51844         * loader/cache/CachedResource.h:
51845         (CachedResource):
51846         * loader/cache/CachedSVGDocument.cpp:
51847         (WebCore::CachedSVGDocument::data):
51848         * loader/cache/CachedSVGDocument.h:
51849         (CachedSVGDocument):
51850         * loader/cache/CachedScript.cpp:
51851         (WebCore::CachedScript::data):
51852         * loader/cache/CachedScript.h:
51853         (CachedScript):
51854         * loader/cache/CachedShader.cpp:
51855         (WebCore::CachedShader::data):
51856         * loader/cache/CachedShader.h:
51857         (CachedShader):
51858         * loader/cache/CachedTextTrack.cpp:
51859         (WebCore::CachedTextTrack::data):
51860         * loader/cache/CachedTextTrack.h:
51861         (CachedTextTrack):
51862         * loader/cache/CachedXSLStyleSheet.cpp:
51863         (WebCore::CachedXSLStyleSheet::data):
51864         * loader/cache/CachedXSLStyleSheet.h:
51865         (CachedXSLStyleSheet):
51866
51867 2012-10-10  Jon Lee  <jonlee@apple.com>
51868
51869         [WK2] Activate plugins when user clicks on snapshot
51870         https://bugs.webkit.org/show_bug.cgi?id=98328
51871         <rdar://problem/12426681>
51872
51873         Reviewed by Brady Eidson.
51874
51875         Extend the default event handler to deal with plugins with snapshots.
51876         When the user clicks on the placeholder, the plugin is recreated and displayed.
51877
51878         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51879         expected to re-create the plugin with the same parameters as when it was run to
51880         obtain the plugin's snapshot placeholder.
51881
51882         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51883         * loader/EmptyClients.h:
51884         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51885
51886         * html/HTMLPlugInElement.cpp:
51887         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51888         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51889         event.
51890
51891         * rendering/RenderSnapshottedPlugIn.cpp:
51892         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51893         playing.
51894         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51895         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51896         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51897         * rendering/RenderSnapshottedPlugIn.h:
51898         (RenderSnapshottedPlugIn):
51899
51900 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51901
51902         FontVerticalDataCache should allow zero as a key value
51903         https://bugs.webkit.org/show_bug.cgi?id=98877
51904
51905         Reviewed by Tony Chang.
51906
51907         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51908         FontVerticalDataCache.
51909
51910         No new tests because there is no certain way to make
51911         FontPlatformDataHarfBuzz::uniqueID() be zero.
51912
51913         * platform/graphics/FontCache.cpp:
51914         (WebCore):
51915         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51916         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51917         (WebCore::FontPlatformData::openTypeTable): Ditto.
51918
51919 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51920
51921         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51922         https://bugs.webkit.org/show_bug.cgi?id=96627
51923
51924         Reviewed by Kenneth Rohde Christiansen.
51925
51926         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51927         It was initially implemented in a different way, due to characteristics of Evas,
51928         but it would be better to use the common implementation and find another way
51929         to deal with Evas, especially because all the duplicated code.
51930
51931         No new tests. No functional changes.
51932
51933         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51934         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51935         (WebCore::GraphicsContext3D::create):
51936         (WebCore::GraphicsContext3D::GraphicsContext3D):
51937         (WebCore::GraphicsContext3D::platformLayer):
51938         (WebCore::GraphicsContext3D::makeContextCurrent):
51939         (WebCore::GraphicsContext3D::setContextLostCallback):
51940         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51941         (WebCore::GraphicsContext3D::paintToCanvas):
51942         (WebCore):
51943         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51944         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51945         (WebCore::GraphicsContext3D::getImageData):
51946         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51947         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51948         (WebCore):
51949         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51950         (WebCore::GraphicsContext3DPrivate::createSurface):
51951         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51952         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51953         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51954         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51955         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51956         (GraphicsContext3DPrivate):
51957
51958 2012-10-10  Tony Chang  <tony@chromium.org>
51959
51960         Unreviewed, rolling out r130937, r130949, r130955, and
51961         r130957.
51962         http://trac.webkit.org/changeset/130937
51963         http://trac.webkit.org/changeset/130949
51964         http://trac.webkit.org/changeset/130955
51965         http://trac.webkit.org/changeset/130957
51966         https://bugs.webkit.org/show_bug.cgi?id=94290
51967
51968         Breaks Qt build
51969
51970         * CMakeLists.txt:
51971         * DerivedSources.make:
51972         * DerivedSources.pri:
51973         * GNUmakefile.am:
51974         * WebCore.gyp/WebCore.gyp:
51975         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
51976         * WebCore.vcproj/WebCore.vcproj:
51977         * WebCore.xcodeproj/project.pbxproj:
51978         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
51979         * css/CSSGrammar.y.includes: Removed.
51980         * css/makegrammar.pl:
51981
51982 2012-10-10  Rob Buis  <rbuis@rim.com>
51983
51984         [BlackBerry] Adapt to new image for search-cancel
51985         https://bugs.webkit.org/show_bug.cgi?id=98954
51986
51987         Reviewed by Antonio Gomes.
51988
51989         The new image for search-cancel is bigger than the old one, so invert the scaling.
51990
51991         * platform/blackberry/RenderThemeBlackBerry.cpp:
51992         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
51993
51994 2012-10-10  Tony Chang  <tony@chromium.org>
51995
51996         Unreviewed, another speculative fix for Qt Win.
51997
51998         * DerivedSources.pri: Pass --preprocessor to the perl script.
51999         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
52000
52001 2012-10-10  Tony Chang  <tony@chromium.org>
52002
52003         Unreviewed, another speculative fix for Qt Win.
52004
52005         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
52006
52007 2012-10-10  David Barton  <dbarton@mathscribe.com>
52008
52009         Turn on ENABLE_MATHML for Chromium
52010         https://bugs.webkit.org/show_bug.cgi?id=96960
52011
52012         Reviewed by Adam Barth.
52013
52014         Add the rendering/mathml directory to search.
52015
52016         * WebCore.gyp/WebCore.gyp:
52017
52018 2012-10-10  Tony Chang  <tony@chromium.org>
52019
52020         Unreviewed, speculative build fix for Qt Win.
52021
52022         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
52023         pass data from gcc to the final output file.
52024
52025 2012-10-10  Brady Eidson  <beidson@apple.com>
52026
52027         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
52028         https://bugs.webkit.org/show_bug.cgi?id=98541
52029
52030         Reviewed by Anders Carlsson.
52031
52032         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
52033         between CachedResources and ResourceLoaders to be one that can be backed by something other
52034         than a SharedBuffer.
52035
52036         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
52037         should be no change in behavior.
52038
52039         No new tests (No behavior change).
52040
52041         * WebCore.exp.in:
52042         * WebCore.xcodeproj/project.pbxproj:
52043         * WebCore.vcproj/WebCore.vcproj:
52044         * CMakeLists.txt:
52045         * GNUmakefile.list.am:
52046         * Target.pri:
52047         * WebCore.gypi:
52048
52049         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
52050         * loader/ResourceBuffer.cpp: Added.
52051         (WebCore):
52052         (WebCore::ResourceBuffer::ResourceBuffer):
52053         (WebCore::ResourceBuffer::~ResourceBuffer):
52054         (WebCore::ResourceBuffer::data):
52055         (WebCore::ResourceBuffer::size):
52056         (WebCore::ResourceBuffer::isEmpty):
52057         (WebCore::ResourceBuffer::getSomeData):
52058         (WebCore::ResourceBuffer::sharedBuffer):
52059         (WebCore::ResourceBuffer::copy):
52060         (WebCore::ResourceBuffer::hasPurgeableBuffer):
52061         (WebCore::ResourceBuffer::releasePurgeableBuffer):
52062         (WebCore::ResourceBuffer::createCFData):
52063
52064         * loader/ResourceBuffer.h: Added.
52065         (WebCore):
52066         (ResourceBuffer):
52067         (WebCore::ResourceBuffer::create):
52068         (WebCore::ResourceBuffer::adoptSharedBuffer):
52069         * loader/mac/ResourceBuffer.mm: Added.
52070
52071         (WebCore):
52072         (WebCore::ResourceBuffer::createNSData):
52073
52074         Switch CachedResource over to using it:
52075         * loader/cache/CachedResource.cpp:
52076         (WebCore::CachedResource::makePurgeable):
52077
52078         * loader/cache/CachedResource.h:
52079         (WebCore):
52080         (WebCore::CachedResource::resourceBuffer):
52081         (CachedResource):
52082
52083         Switch all the other CachedResource subclasses over to using it:
52084         * loader/cache/CachedCSSStyleSheet.cpp:
52085         (WebCore::CachedCSSStyleSheet::data):
52086
52087         * loader/cache/CachedFont.cpp:
52088         (WebCore::CachedFont::data):
52089         (WebCore::CachedFont::ensureCustomFontData):
52090
52091         * loader/cache/CachedImage.cpp:
52092         (WebCore::CachedImage::didAddClient):
52093         (WebCore::CachedImage::data):
52094
52095         * loader/cache/CachedRawResource.cpp:
52096         (WebCore::CachedRawResource::data):
52097
52098         * loader/cache/CachedScript.cpp:
52099         (WebCore::CachedScript::data):
52100
52101         * loader/cache/CachedShader.cpp:
52102         (WebCore::CachedShader::data):
52103
52104         * loader/cache/CachedTextTrack.cpp:
52105         (WebCore::CachedTextTrack::data):
52106         
52107         * loader/cache/CachedXSLStyleSheet.cpp:
52108         (WebCore::CachedXSLStyleSheet::data):
52109
52110         Switch other affect parties over to using it:
52111         * inspector/InspectorPageAgent.cpp:
52112         (WebCore::decodeBuffer):
52113         (WebCore::InspectorPageAgent::cachedResourceContent):
52114         (WebCore::InspectorPageAgent::sharedBufferContent):
52115
52116         * loader/DocumentLoader.cpp:
52117         (WebCore::DocumentLoader::subresource):
52118
52119         * loader/TextTrackLoader.cpp:
52120         (WebCore::TextTrackLoader::processNewCueData):
52121         (WebCore::TextTrackLoader::didReceiveData):
52122
52123         * loader/archive/cf/LegacyWebArchive.cpp:
52124         (WebCore::LegacyWebArchive::create):
52125
52126         * loader/icon/IconLoader.cpp:
52127         (WebCore::IconLoader::notifyFinished):
52128
52129         * platform/mac/PasteboardMac.mm:
52130         (WebCore::fileWrapperForImage):
52131
52132 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52133
52134         Unreviewed build fix after r130940.
52135
52136         * platform/graphics/skia/GraphicsContextSkia.cpp:
52137         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52138         Avoid redefining the same variable twice.
52139
52140 2012-10-10  Alexis Menard  <alexis@webkit.org>
52141
52142         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52143         https://bugs.webkit.org/show_bug.cgi?id=98916
52144
52145         Reviewed by Timothy Hatcher.
52146
52147         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52148         to remove getPropertyShorthand from the web exposed API (this function is not part of
52149         any specification, it was there for historical reason).
52150
52151         No new tests : just mark a function as deprecated.
52152
52153         * bindings/objc/PublicDOMInterfaces.h:
52154
52155 2012-10-10  Mike West  <mkwst@chromium.org>
52156
52157         Web Inspector: add support for %c (style) in console API
52158         https://bugs.webkit.org/show_bug.cgi?id=69401
52159
52160         Reviewed by Pavel Feldman.
52161
52162         This patch mimics Firebug's '%c' option when calling 'console.log'
52163         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52164         text to the console, and so on.
52165
52166         To match Firebug's behavior, multiple '%c' entries will overwrite each
52167         other: only one style will be applied. Sorry, folks.
52168
52169         Test: inspector/console/console-format-style.html
52170
52171         * inspector/front-end/ConsoleMessage.js:
52172         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52173         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52174         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52175
52176 2012-10-10  Varun Jain  <varunjain@chromium.org>
52177
52178         [chromium] Spelling and grammar markers are pixelated in hidpi.
52179         https://bugs.webkit.org/show_bug.cgi?id=98339
52180
52181         Reviewed by Stephen White.
52182
52183         We create separate bitmaps for markers in normal and hidpi mode as per
52184         specification from UX and choose the right bitmap based on the current
52185         device scale factor.
52186
52187         Tests: editing/spelling/grammar-markers-hidpi.html
52188                editing/spelling/inline-spelling-markers-hidpi.html
52189
52190         * platform/graphics/skia/GraphicsContextSkia.cpp:
52191         (WebCore::draw2xMarker):
52192         (WebCore):
52193         (WebCore::draw1xMarker):
52194         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52195         * platform/graphics/skia/PlatformContextSkia.cpp:
52196         (WebCore::PlatformContextSkia::PlatformContextSkia):
52197         * platform/graphics/skia/PlatformContextSkia.h:
52198         (WebCore::PlatformContextSkia::deviceScaleFactor):
52199         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52200         (PlatformContextSkia):
52201
52202 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52203
52204         Pre-process CSSGrammar.y before running through bison.
52205         https://bugs.webkit.org/show_bug.cgi?id=94290
52206
52207         Reviewed by Tony Chang.
52208
52209         Running CSSGrammar.y through a preprocessor allows the use of feature
52210         defines in all places of the yacc file (i.e. not just in C blocks).
52211         Mostly useful to be able to keep every part of a feature under feature
52212         flags for self-documenting purposes.
52213
52214         No new tests, CSSGrammar.y should be generated correctly and everything
52215         should keep working as before.
52216
52217         * CMakeLists.txt:
52218         * DerivedSources.make:
52219         * DerivedSources.pri:
52220         * GNUmakefile.am:
52221             Modify build systems to use makegrammar.pl to generate the .y files
52222             and run those through bison.
52223
52224         * WebCore.gyp/WebCore.gyp:
52225         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52226             Add a new action to preprocess the CSSGrammar.y.in file before the
52227             bison rule is run.
52228
52229         * WebCore.vcproj/WebCore.vcproj:
52230         * WebCore.xcodeproj/project.pbxproj:
52231             Add the new .y.in / .y.includes files.
52232
52233         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52234             Also moved the top declarations section that has includes, defines,
52235             etc. to its own file. These shouldn't be touched by the first
52236             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52237             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52238             yet.
52239         * css/CSSGrammar.y.includes: Added.
52240             The aforementioned declarations header section. After the .y.in file
52241             is processed it will be concatenated with this one to make the
52242             CSSGrammar.y file.
52243
52244         * css/makegrammar.pl:
52245             Modify the script to handle .y.in files.
52246
52247 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52248
52249         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52250         https://bugs.webkit.org/show_bug.cgi?id=98890
52251
52252         Reviewed by Caio Marcelo de Oliveira Filho.
52253
52254         * page/EventHandler.cpp:
52255         (WebCore::EventHandler::handleGestureLongPress):
52256
52257 2012-10-10  David Grogan  <dgrogan@chromium.org>
52258
52259         Inspector: display IndexedDB integer versions
52260         https://bugs.webkit.org/show_bug.cgi?id=95816
52261
52262         Reviewed by Vsevolod Vlasov.
52263
52264         Added basic test to database-structure.html
52265
52266         * inspector/Inspector.json:
52267         * inspector/InspectorIndexedDBAgent.cpp:
52268         (WebCore):
52269         * inspector/front-end/IndexedDBModel.js:
52270         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52271         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52272         (WebInspector.IndexedDBModel.Database):
52273         * inspector/front-end/IndexedDBViews.js:
52274         (WebInspector.IDBDatabaseView):
52275         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52276
52277 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52278
52279         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52280         https://bugs.webkit.org/show_bug.cgi?id=98839
52281
52282         Reviewed by Sam Weinig.
52283
52284         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52285         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52286         but store the computed rect in m_visibleRect.
52287         
52288         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52289         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52290
52291         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52292         * page/Frame.cpp:
52293         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52294         * page/Frame.h:
52295         * platform/graphics/GraphicsLayer.cpp:
52296         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52297         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52298         (showGraphicsLayerTree):
52299         * platform/graphics/GraphicsLayer.h:
52300         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52301         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52302         * platform/graphics/ca/GraphicsLayerCA.cpp:
52303         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52304         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52305         to m_visibleRect.
52306         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52307         * platform/graphics/ca/GraphicsLayerCA.h:
52308         (GraphicsLayerCA):
52309         * rendering/RenderLayerCompositor.cpp:
52310         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52311         to GraphicsLayerFlags and pass them along.
52312         * rendering/RenderLayerCompositor.h:
52313         (RenderLayerCompositor):
52314         * testing/Internals.cpp:
52315         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52316         * testing/Internals.h: Add enum.
52317         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52318
52319 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52320
52321         Needs internal API to return distributed nodes for InsertionPoint
52322         https://bugs.webkit.org/show_bug.cgi?id=98868
52323
52324         Reviewed by Hajime Morita.
52325
52326         When testing insertion points, we would like to have an internal API which returns a node list
52327         distributed to an insertion point.
52328
52329         We've added the API in Internals.
52330
52331         Test: fast/dom/shadow/distributed-nodes.html
52332
52333         * WebCore.exp.in:
52334         * html/shadow/InsertionPoint.cpp:
52335         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52336         attached, the result will be null, since the distribution is not calculated correctly.
52337         (WebCore):
52338         * html/shadow/InsertionPoint.h:
52339         (InsertionPoint):
52340         * testing/Internals.cpp:
52341         (WebCore::Internals::distributedNodes):
52342         (WebCore):
52343         * testing/Internals.h:
52344         (Internals):
52345         * testing/Internals.idl:
52346
52347 2012-10-10  Wei James  <james.wei@intel.com>
52348
52349         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52350         https://bugs.webkit.org/show_bug.cgi?id=98629
52351
52352         Reviewed by Adam Barth.
52353
52354         Warning was taken as error for uninitialized value being used when
52355         building content shell for Android x86 with gcc 4.6.
52356
52357         * WebCore.gyp/WebCore.gyp:
52358
52359 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52360
52361         [CSS Regions] Create a separate list for the invalid regions
52362         https://bugs.webkit.org/show_bug.cgi?id=98752
52363
52364         Reviewed by Andreas Kling.
52365
52366         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:
52367         - iterations through the region list don't need to worry about invalid regions
52368         - accessing the first/last region is straightforward
52369         - list manipulations are easier to implement (e.g. binary search for a region)
52370
52371         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52372
52373         * dom/WebKitNamedFlow.cpp:
52374         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52375         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52376         * rendering/RenderFlowThread.cpp:
52377         (WebCore::RenderFlowThread::RenderFlowThread):
52378         (WebCore::RenderFlowThread::layout):
52379         (WebCore::RenderFlowThread::updateLogicalWidth):
52380         (WebCore::RenderFlowThread::computeLogicalHeight):
52381         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52382         (WebCore::RenderFlowThread::regionAtBlockOffset):
52383         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52384         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52385         (WebCore::RenderFlowThread::firstRegion):
52386         (WebCore::RenderFlowThread::lastRegion):
52387         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52388         (WebCore::RenderFlowThread::regionInRange):
52389         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52390         (WebCore::RenderFlowThread::objectInFlowRegion):
52391         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52392         * rendering/RenderFlowThread.h:
52393         * rendering/RenderNamedFlowThread.cpp:
52394         (WebCore):
52395         (WebCore::addRegionToList):
52396         (WebCore::RenderNamedFlowThread::addRegionToThread):
52397         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52398         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52399         * rendering/RenderNamedFlowThread.h:
52400         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52401         (RenderNamedFlowThread):
52402         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52403         * rendering/RenderTreeAsText.cpp:
52404         (WebCore::writeRenderRegionList):
52405         (WebCore):
52406         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52407
52408 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52409
52410         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52411         https://bugs.webkit.org/show_bug.cgi?id=98915
52412
52413         Reviewed by Alexander Pavlov.
52414
52415         WorkspaceController now clears stale revisions on navigation as well.
52416
52417         * inspector/front-end/Workspace.js:
52418         (WebInspector.WorkspaceController):
52419         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52420
52421 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52422
52423         Web Inspector: Exception when committing java script editing with revision history view open.
52424         https://bugs.webkit.org/show_bug.cgi?id=98908
52425
52426         Reviewed by Alexander Pavlov.
52427
52428         Added null check.
52429
52430         * inspector/front-end/RevisionHistoryView.js:
52431
52432 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52433
52434         Web Inspector: protect node in the InspectorDOMNode::inspect
52435         https://bugs.webkit.org/show_bug.cgi?id=98914
52436
52437         Reviewed by Yury Semikhatsky.
52438
52439         * inspector/InspectorDOMAgent.cpp:
52440         (WebCore::InspectorDOMAgent::inspect):
52441
52442 2012-10-10  Mike West  <mkwst@google.com>
52443
52444         EditorCommand calls setProperty with the wrong parameters.
52445         https://bugs.webkit.org/show_bug.cgi?id=98896
52446
52447         Reviewed by Jochen Eisinger.
52448
52449         EditorCommand::executeToggleStyleInList calls
52450         StylePropertySet::setProperty with an ExceptionCode as the final
52451         argument. This only succeeds because it's automagically cast to a bool,
52452         which is what the method actually expects.
52453
52454         Implicitly passing in 'false' by dropping the parameter shouldn't change
52455         any visible functionality; no new tests are required.
52456
52457         * editing/EditorCommand.cpp:
52458         (WebCore::executeToggleStyleInList):
52459
52460 2012-10-10  Mike West  <mkwst@google.com>
52461
52462         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52463         https://bugs.webkit.org/show_bug.cgi?id=98892
52464
52465         Reviewed by Jochen Eisinger.
52466
52467         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52468         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52469         parameter. This only succeeds because it's automagically cast to a bool,
52470         which is what the method actually expects.
52471
52472         Implicitly passing in 'false' by dropping the parameter shouldn't change
52473         any functionality; so no new tests are required.
52474
52475         * html/HTMLTextFormControlElement.cpp:
52476         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52477
52478 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52479
52480         SQLResultSet.rowsAffected not cleared
52481         https://bugs.webkit.org/show_bug.cgi?id=46070
52482
52483         Reviewed by Kenneth Rohde Christiansen.
52484
52485         SQLResultSet.rowsAffected is supposed to return the number
52486         of rows that were changed by the statement. For "SELECT"
52487         statements, it should return 0.
52488
52489         However, our implementation currently relies on sqlite3_changes()
52490         to compute this value. sqlite3_changes() returns the number of
52491         direct row changes in the most recent INSERT, UPDATE, or DELETE
52492         statement within the same trigger context. Unfortunately, the
52493         most recent INSERT, UPDATE, or DELETE statement may not be the
52494         last statement. As a consequence, if you INSERT 1 row, then
52495         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52496         INSERT and the SELECT statements.
52497
52498         The proposed solution is to use sqlite3_total_changes() instead
52499         of sqlite3_changes(). sqlite3_total_changes() returns the number
52500         of row changes caused by INSERT, UPDATE or DELETE statements since
52501         the database connection was opened. We now store the value
52502         returned by sqlite3_total_changes() before each statement in
52503         order to return the count difference in
52504         SQLiteDatabase::lastChanges().
52505
52506         Test: storage/websql/execute-sql-rowsAffected.html
52507
52508         * platform/sql/SQLiteDatabase.cpp:
52509         (WebCore::SQLiteDatabase::SQLiteDatabase):
52510         (WebCore::SQLiteDatabase::updateLastChangesCount):
52511         (WebCore):
52512         (WebCore::SQLiteDatabase::lastChanges):
52513         * platform/sql/SQLiteDatabase.h:
52514         (SQLiteDatabase):
52515         * platform/sql/SQLiteStatement.cpp:
52516         (WebCore::SQLiteStatement::step):
52517
52518 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52519
52520         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52521         https://bugs.webkit.org/show_bug.cgi?id=98881
52522
52523         Reviewed by Kent Tamura.
52524
52525         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52526
52527         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52528
52529         * Resources/pagepopups/calendarPicker.js:
52530         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52531         (DaysTable.prototype._handleKey): Ditto.
52532
52533 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52534
52535         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52536         https://bugs.webkit.org/show_bug.cgi?id=98520
52537
52538         Reviewed by Vsevolod Vlasov.
52539
52540         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52541         (which is not going to be created).
52542
52543         * css/CSSParser.cpp:
52544         (WebCore::CSSParser::createImportRule):
52545         (WebCore::CSSParser::createFontFaceRule):
52546         (WebCore::CSSParser::createPageRule):
52547         (WebCore::CSSParser::createRegionRule):
52548
52549 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52550
52551         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52552         https://bugs.webkit.org/show_bug.cgi?id=98387
52553
52554         Check for the availability of GL_ARB_texture_rectangle extension.
52555         In case it is available, we activate the extension for ANGLE.
52556         This is necessary for WebGL on mac, because the GraphicsSurface
52557         on this platform is based on an IOSurface, which requires this extension.
52558
52559         Reviewed by Noam Rosenthal.
52560
52561         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52562         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52563
52564 2012-10-10  Andreas Kling  <kling@webkit.org>
52565
52566         ElementAttributeData: tighten member packing on 64-bit.
52567         <http://webkit.org/b/98861>
52568
52569         Reviewed by Anders Carlsson.
52570
52571         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52572         218kB progression on Membuster3.
52573
52574         * dom/ElementAttributeData.h:
52575         (ElementAttributeData):
52576
52577 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52578
52579         Text Autosizing: Counteract funky window sizing on Android.
52580         https://bugs.webkit.org/show_bug.cgi?id=98809
52581
52582         Reviewed by Adam Barth.
52583
52584         In Chrome for Android, the window sizes provided to WebCore are
52585         currently in physical screen pixels instead of
52586         device-scale-adjusted units. For example window width on a
52587         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52588         device-independent pixels.  When Chrome for Android cuts over to
52589         the new coordinate space, it will be tied to the setting
52590         applyPageScaleFactorInCompositor.
52591
52592         No new tests.
52593
52594         * rendering/TextAutosizer.cpp:
52595         (WebCore::TextAutosizer::processSubtree):
52596
52597 2012-10-09  Philip Rogers  <pdr@google.com>
52598
52599         Recursively detach SVGElementInstances
52600         https://bugs.webkit.org/show_bug.cgi?id=98851
52601
52602         Reviewed by Ryosuke Niwa and Abhishek Arya
52603
52604         Before this patch, SVGElementInstance child nodes were not being detached. This
52605         patch makes detach() recursively detach SVGElementInstances.
52606
52607         * svg/SVGElementInstance.cpp:
52608         (WebCore::SVGElementInstance::detach):
52609
52610 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52611
52612         [Chromium] Fix harfbuzz-ng related code after r130231
52613         https://bugs.webkit.org/show_bug.cgi?id=98858
52614
52615         Reviewed by Kent Tamura.
52616
52617         Replace first/second with key/value.
52618
52619         No new tests. No changes in behavior.
52620
52621         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52622         (WebCore::harfbuzzGetGlyph):
52623         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52624         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52625
52626 2012-10-09  Enrica Casucci  <enrica@apple.com>
52627
52628         Only measure text once instead of twice when performing line layout.
52629         https://bugs.webkit.org/show_bug.cgi?id=98317
52630         <rdar://problem/12080821>
52631
52632         Reviewed by Dan Bernstein.
52633
52634         Since we are measuring each word to find out where the line break should occur,
52635         we should cache that information to avoid measuring the run again when
52636         creating the line box. The bulk of the change is in nextLineBreak, where
52637         the measurements are collected and placed in a vector so that they can
52638         be consumed in setLogicalWidthForTextRun where we used to measure the
52639         text one more time.
52640         Each entry in the vector is a WordMeasurement object that contains information
52641         about the start and end offset in the run, the renderer, the measured width
52642         and, possibly, a list of fallback fonts.
52643         When we need to compute the width of the run to create the line box, we add
52644         all the measurements for the given renderer in the run to get the total width.
52645         This optiomization is currently disabled for platforms using HarfBuzz.
52646
52647         * platform/graphics/Font.cpp:
52648         (WebCore::Font::width): Added fallback fonts parameter.
52649         * platform/graphics/Font.h:
52650         (Font): Added fallback fonts parameter to the width static member function.
52651         This method is called when we compute the width using TextLayout.
52652         * platform/graphics/mac/ComplexTextController.cpp:
52653         (WebCore::TextLayout::width): Added fallback fonts parameter.
52654         (WebCore::Font::width):
52655         (WebCore::ComplexTextController::advance):
52656         * platform/graphics/mac/ComplexTextController.h:
52657         (ComplexTextController): Added fallback fonts parameter to advance method.
52658         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52659         * rendering/RenderBlockLineLayout.cpp:
52660         (WordMeasurement): Added new class to hold measurement information.
52661         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52662         cached information.
52663         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52664         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52665         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52666         vector and its use.
52667         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52668         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52669         the measurements of the individual words and add them to the vector.
52670
52671 2012-10-09  Andreas Kling  <kling@webkit.org>
52672
52673         GlyphPageTreeNode should use HashMap<OwnPtr>.
52674         <http://webkit.org/b/98845>
52675
52676         Reviewed by Dan Bernstein.
52677
52678         - Replace manual memory management by OwnPtrs.
52679         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52680         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52681         - Made the constructor private, it has no external clients.
52682
52683         * platform/graphics/GlyphPageTreeNode.cpp:
52684         (WebCore::GlyphPageTreeNode::getRoot):
52685         (WebCore::GlyphPageTreeNode::pageCount):
52686         (WebCore::GlyphPageTreeNode::getChild):
52687         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52688         (WebCore::GlyphPageTreeNode::pruneFontData):
52689         (WebCore::GlyphPageTreeNode::showSubtree):
52690         * platform/graphics/GlyphPageTreeNode.h:
52691         (GlyphPageTreeNode):
52692         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52693
52694 2012-10-09  Kent Tamura  <tkent@chromium.org>
52695
52696         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52697         https://bugs.webkit.org/show_bug.cgi?id=98850
52698
52699         Reviewed by Kentaro Hara.
52700
52701         Covered by additional test cases of
52702         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52703         time-multiple-fields/time-multiple-fields-mouse-events.html.
52704
52705         * html/shadow/DateTimeFieldElement.h:
52706         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52707         * html/shadow/DateTimeFieldElement.cpp:
52708         (WebCore::DateTimeFieldElement::isFocusable):
52709         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52710         just in case.
52711         * html/shadow/DateTimeEditElement.cpp:
52712         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52713         * html/shadow/DateTimeEditElement.h:
52714         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52715
52716 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52717
52718         [chromium] revert fling deacceleration parameter change
52719         https://bugs.webkit.org/show_bug.cgi?id=98820
52720
52721         Reviewed by Adrienne Walker.
52722
52723         After an extended discussion, it has been decided that a previous
52724         adjustment to fling deacceleration parameters should be reverted.
52725
52726         Tested by existing unit tests.
52727
52728         * platform/TouchFlingPlatformGestureCurve.cpp:
52729         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52730         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52731
52732 2012-10-09  Kent Tamura  <tkent@chromium.org>
52733
52734         Should reject invalid dates constructed with multiple fields UI
52735         https://bugs.webkit.org/show_bug.cgi?id=98727
52736
52737         Reviewed by Hajime Morita.
52738
52739         In input[type=date] with multiple fields UI, we allow users to set
52740         day-of-month value to 1-31 regardless of the month value. So users can
52741         construct an invalid date such as "2012-02-31". We should sanitize such
52742         values.
52743
52744         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52745         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52746
52747         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52748
52749         * html/BaseDateAndTimeInputType.h:
52750         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52751         BaseMultipleFieldsDateAndTimeInputType.
52752         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52753         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52754         Apply sanitizeValue to a value constructed in UI.
52755         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52756         Ditto.
52757
52758 2012-10-09  Joe Mason  <jmason@rim.com>
52759
52760         Check for null m_frame in NetworkJob
52761         https://bugs.webkit.org/show_bug.cgi?id=98830
52762
52763         Reviewed by George Staikos.
52764
52765         PR 220025
52766
52767         * platform/network/blackberry/NetworkJob.cpp:
52768         (WebCore::NetworkJob::sendRequestWithCredentials):
52769         (WebCore::NetworkJob::storeCredentials):
52770
52771 2012-10-09  Jian Li  <jianli@chromium.org>
52772
52773         Update the CSS property used to support draggable regions.
52774         https://bugs.webkit.org/show_bug.cgi?id=97156
52775
52776         Reviewed by Adam Barth.
52777
52778         The CSS property to support draggable regions has been changed from
52779         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52780            -webkit-app-region: drag|no-drag
52781
52782         The CSS parsing code for draggable regions is now different from the CSS
52783         parsing code for dashboard regions since we have quite different syntax.
52784
52785         We still try to share as much rendering update code as possible for
52786         these two features. To make the shared code easier to understand for
52787         both features, the name "DashboardRegions" in the shared code is changed
52788         to "AnnotatedRegions" to work for both dashboard regions and draggable
52789         regions.
52790
52791         Note that we still using WIDGET_REGION as feature name in order not to
52792         add more changes to this patch. It will be renamed to a more appropriate
52793         name in next patch. WIDGET_REGION is now only turned on for the chromium
52794         port.
52795
52796         Test: fast/css/draggable-region-parser.html
52797
52798         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52799         * WebCore.exp.in: Update the exported symbol due to renaming.
52800         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52801         (WebCore):
52802         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52803         * css/CSSParser.cpp: Update the CSS parsing.
52804         (WebCore::CSSParser::parseValue):
52805         (WebCore):
52806         (WebCore::CSSParser::parseDashboardRegions):
52807         * css/CSSParserValues.cpp: Update the CSS parsing.
52808         (WebCore::CSSParserValue::createCSSValue):
52809         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52810         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52811         (WebCore):
52812         (WebCore::CSSPrimitiveValue::cleanup):
52813         (WebCore::CSSPrimitiveValue::customCssText):
52814         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52815         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52816         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52817         (CSSPrimitiveValue):
52818         * css/CSSProperty.cpp:
52819         (WebCore::CSSProperty::isInheritedProperty):
52820         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52821         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52822         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52823         (DashboardRegion):
52824         * css/StyleResolver.cpp: Update the CSS parsing.
52825         (WebCore::StyleResolver::collectMatchingRulesForList):
52826         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52827         (WebCore::Document::Document):
52828         (WebCore::Document::annotatedRegions):
52829         (WebCore::Document::setAnnotatedRegions):
52830         (WebCore::Document::reportMemoryUsage):
52831         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52832         (WebCore):
52833         (WebCore::Document::setAnnotatedRegionsDirty):
52834         (WebCore::Document::annotatedRegionsDirty):
52835         (WebCore::Document::hasAnnotatedRegions):
52836         (WebCore::Document::setHasAnnotatedRegions):
52837         (Document):
52838         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52839         (WebCore::ChromeClient::annotatedRegionsChanged):
52840         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52841         (ChromeClient):
52842         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52843         (WebCore::FrameView::layout):
52844         (WebCore::FrameView::updateAnnotatedRegions):
52845         (WebCore::FrameView::paintContents):
52846         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52847         (FrameView):
52848         * rendering/RenderInline.cpp:
52849         (WebCore::RenderInline::addAnnotatedRegions):
52850         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52851         (RenderInline):
52852         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52853         (WebCore::RenderLayer::scrollTo):
52854         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52855         (WebCore::RenderLayer::setHasVerticalScrollbar):
52856         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52857         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52858         (WebCore::RenderListBox::setHasVerticalScrollbar):
52859         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52860         (WebCore::RenderObject::styleWillChange):
52861         (WebCore::RenderObject::addAnnotatedRegions):
52862         (WebCore::RenderObject::collectAnnotatedRegions):
52863         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52864         (WebCore::AnnotatedRegionValue::operator==):
52865         (WebCore::AnnotatedRegionValue::operator!=):
52866         (AnnotatedRegionValue):
52867         (RenderObject):
52868         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52869         (WebCore::RenderStyle::diff):
52870         (WebCore):
52871         * rendering/style/RenderStyle.h: Update the CSS parsing.
52872         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52873         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52874         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52875         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52876         (WebCore::StyleRareNonInheritedData::operator==):
52877         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52878         (WebCore):
52879         (StyleRareNonInheritedData):
52880
52881 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52882
52883         Unreviewed, rolling out r130811 and r130821.
52884         http://trac.webkit.org/changeset/130811
52885         http://trac.webkit.org/changeset/130821
52886         https://bugs.webkit.org/show_bug.cgi?id=98831
52887
52888         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52889         (Requested by abarth|gardening on #webkit).
52890
52891         * WebCore.exp.in:
52892         * dom/ContainerNode.cpp:
52893         (WebCore::ContainerNode::getUpperLeftCorner):
52894         (WebCore::ContainerNode::getLowerRightCorner):
52895         * dom/MouseRelatedEvent.cpp:
52896         (WebCore::MouseRelatedEvent::computeRelativePosition):
52897         * dom/Node.cpp:
52898         (WebCore::Node::convertToPage):
52899         (WebCore::Node::convertFromPage):
52900         * editing/FrameSelection.cpp:
52901         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52902         * editing/RenderedPosition.cpp:
52903         (WebCore::RenderedPosition::absoluteRect):
52904         * editing/VisiblePosition.cpp:
52905         (WebCore::VisiblePosition::absoluteCaretBounds):
52906         * html/HTMLSelectElement.cpp:
52907         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52908         * html/shadow/SliderThumbElement.cpp:
52909         (WebCore::SliderThumbElement::setPositionFromPoint):
52910         * html/shadow/SpinButtonElement.cpp:
52911         (WebCore::SpinButtonElement::defaultEventHandler):
52912         * page/FrameView.cpp:
52913         (WebCore::FrameView::convertFromRenderer):
52914         (WebCore::FrameView::convertToRenderer):
52915         * rendering/InlineTextBox.cpp:
52916         (WebCore::InlineTextBox::paintDocumentMarker):
52917         (WebCore::InlineTextBox::paintTextMatchMarker):
52918         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52919         * rendering/LayoutState.cpp:
52920         (WebCore::LayoutState::LayoutState):
52921         * rendering/RenderBlock.cpp:
52922         (WebCore::RenderBlock::absoluteQuads):
52923         * rendering/RenderBox.cpp:
52924         (WebCore::RenderBox::absoluteQuads):
52925         (WebCore::RenderBox::absoluteContentBox):
52926         (WebCore::RenderBox::mapLocalToContainer):
52927         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52928         * rendering/RenderBox.h:
52929         (RenderBox):
52930         * rendering/RenderBoxModelObject.cpp:
52931         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52932         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52933         * rendering/RenderBoxModelObject.h:
52934         (RenderBoxModelObject):
52935         * rendering/RenderEmbeddedObject.cpp:
52936         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52937         * rendering/RenderFrameSet.cpp:
52938         (WebCore::RenderFrameSet::userResize):
52939         * rendering/RenderGeometryMap.cpp:
52940         (WebCore::RenderGeometryMap::absolutePoint):
52941         * rendering/RenderInline.cpp:
52942         (WebCore::RenderInline::mapLocalToContainer):
52943         * rendering/RenderInline.h:
52944         (RenderInline):
52945         * rendering/RenderLayer.cpp:
52946         (WebCore::RenderLayer::absoluteToContents):
52947         (WebCore::RenderLayer::convertToLayerCoords):
52948         (WebCore::RenderLayer::scrollTo):
52949         (WebCore::RenderLayer::calculateClipRects):
52950         (WebCore::RenderLayer::childrenClipRect):
52951         (WebCore::RenderLayer::selfClipRect):
52952         * rendering/RenderLayerBacking.cpp:
52953         (WebCore::RenderLayerBacking::contentsVisible):
52954         * rendering/RenderMediaControls.cpp:
52955         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52956         * rendering/RenderMenuList.cpp:
52957         (WebCore::RenderMenuList::showPopup):
52958         * rendering/RenderObject.cpp:
52959         (WebCore::RenderObject::absoluteFocusRingQuads):
52960         (WebCore::RenderObject::localToAbsolute):
52961         (WebCore::RenderObject::absoluteToLocal):
52962         (WebCore::RenderObject::mapLocalToContainer):
52963         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
52964         (WebCore::RenderObject::localToContainerQuad):
52965         (WebCore::RenderObject::localToContainerPoint):
52966         * rendering/RenderObject.h:
52967         (RenderObject):
52968         (WebCore::RenderObject::localToAbsoluteQuad):
52969         * rendering/RenderText.cpp:
52970         (WebCore::RenderText::absoluteRectsForRange):
52971         (WebCore::RenderText::absoluteQuads):
52972         (WebCore::RenderText::absoluteQuadsForRange):
52973         * rendering/RenderTheme.cpp:
52974         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
52975         * rendering/RenderView.cpp:
52976         (WebCore::RenderView::mapLocalToContainer):
52977         (WebCore::RenderView::mapAbsoluteToLocalPoint):
52978         (WebCore::RenderView::selectionBounds):
52979         * rendering/RenderView.h:
52980         (RenderView):
52981         * rendering/RenderWidget.cpp:
52982         (WebCore::RenderWidget::updateWidgetGeometry):
52983         * rendering/svg/RenderSVGForeignObject.cpp:
52984         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
52985         * rendering/svg/RenderSVGForeignObject.h:
52986         (RenderSVGForeignObject):
52987         * rendering/svg/RenderSVGInline.cpp:
52988         (WebCore::RenderSVGInline::mapLocalToContainer):
52989         * rendering/svg/RenderSVGInline.h:
52990         (RenderSVGInline):
52991         * rendering/svg/RenderSVGModelObject.cpp:
52992         (WebCore::RenderSVGModelObject::mapLocalToContainer):
52993         (WebCore::RenderSVGModelObject::absoluteQuads):
52994         * rendering/svg/RenderSVGModelObject.h:
52995         (RenderSVGModelObject):
52996         * rendering/svg/RenderSVGRoot.cpp:
52997         (WebCore::RenderSVGRoot::mapLocalToContainer):
52998         * rendering/svg/RenderSVGRoot.h:
52999         (RenderSVGRoot):
53000         * rendering/svg/RenderSVGText.cpp:
53001         (WebCore::RenderSVGText::mapLocalToContainer):
53002         (WebCore::RenderSVGText::absoluteQuads):
53003         * rendering/svg/RenderSVGText.h:
53004         (RenderSVGText):
53005         * rendering/svg/SVGRenderSupport.cpp:
53006         (WebCore::SVGRenderSupport::mapLocalToContainer):
53007         * svg/SVGSVGElement.cpp:
53008         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53009
53010 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53011
53012         Unreviewed, rolling out r130812.
53013         http://trac.webkit.org/changeset/130812
53014         https://bugs.webkit.org/show_bug.cgi?id=98826
53015
53016         Caused fast/text/shaping/shaping-selection-rect to fail
53017         (Requested by abarth|gardening on #webkit).
53018
53019         * platform/graphics/Font.cpp:
53020         (WebCore::Font::width):
53021         * platform/graphics/Font.h:
53022         (Font):
53023         * platform/graphics/mac/ComplexTextController.cpp:
53024         (WebCore::TextLayout::width):
53025         (WebCore::Font::width):
53026         (WebCore::ComplexTextController::advance):
53027         * platform/graphics/mac/ComplexTextController.h:
53028         (ComplexTextController):
53029         * rendering/RenderBlock.h:
53030         (WebCore):
53031         (LineBreaker):
53032         (RenderBlock):
53033         * rendering/RenderBlockLineLayout.cpp:
53034         (WebCore::setLogicalWidthForTextRun):
53035         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
53036         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
53037         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
53038         (WebCore::textWidth):
53039         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
53040
53041 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
53042
53043         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
53044         https://bugs.webkit.org/show_bug.cgi?id=98711
53045
53046         Reviewed by Kent Tamura.
53047
53048         Since the number of characters is always greater than the number of grapheme clusters,
53049         we can avoid calling computeLengthForSubmission when the number of characters is less
53050         than maxlength. We still have to count the number of LFs since they all need to be
53051         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
53052
53053         * html/HTMLTextAreaElement.cpp:
53054         (WebCore::computeLengthForSubmission):
53055         (WebCore::numberOfLineBreaks):
53056         (WebCore::upperBoundForLengthForSubmission): Added.
53057         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
53058         (WebCore::HTMLTextAreaElement::tooLong):
53059
53060 2012-10-09  Nate Chapin  <japhet@chromium.org>
53061
53062         Make CachedResourceLoader RefCounted and have both Document
53063         and DocumentLoader hold RefPtrs. This is in preparation for
53064         caching main resources.
53065         https://bugs.webkit.org/show_bug.cgi?id=86787
53066
53067         Reviewed by Adam Barth.
53068
53069         No new tests, no functionality changes at this time.
53070
53071         * WebCore.exp.in:
53072         * WebCore.xcodeproj/project.pbxproj:
53073         * dom/Document.cpp:
53074         (WebCore::Document::Document): Only create our own CachedResourceLoader
53075             if we were given a null frame.
53076         (WebCore::Document::~Document):
53077         (WebCore::Document::cachedResourceLoader):
53078         (WebCore):
53079         * dom/Document.h:
53080         (Document):
53081         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
53082             of the Document's pointer.
53083         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
53084         (WebCore::DocumentLoader::~DocumentLoader):
53085         (WebCore::DocumentLoader::isLoadingInAPISense):
53086         (WebCore::DocumentLoader::subresource):
53087         (WebCore::DocumentLoader::getSubresources):
53088         * loader/DocumentLoader.h:
53089         (WebCore::DocumentLoader::cachedResourceLoader):
53090         (DocumentLoader):
53091         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
53092             It can now be accessed from m_documentLoader.
53093         (WebCore::SubresourceLoader::SubresourceLoader):
53094         (WebCore::SubresourceLoader::~SubresourceLoader):
53095         (WebCore::SubresourceLoader::willSendRequest):
53096         (WebCore::SubresourceLoader::releaseResources):
53097         * loader/SubresourceLoader.h:
53098         (SubresourceLoader):
53099         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53100         (WebCore::CachedResourceLoader::CachedResourceLoader):
53101         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53102         (WebCore::CachedResourceLoader::frame):
53103         (WebCore::CachedResourceLoader::canRequest):
53104         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53105         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53106         (WebCore::CachedResourceLoader::loadDone):
53107         * loader/cache/CachedResourceLoader.h:
53108         (WebCore):
53109         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53110         (CachedResourceLoader):
53111         (WebCore::CachedResourceLoader::document):
53112         (WebCore::CachedResourceLoader::setDocument):
53113         (WebCore::CachedResourceLoader::clearDocumentLoader):
53114
53115 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53116
53117         CSS Style is not recalculated when media attribute of style element is changed
53118         https://bugs.webkit.org/show_bug.cgi?id=96752
53119
53120         Reviewed by Kenneth Rohde Christiansen.
53121
53122         When "media" attribute of style element is changed, style should be recalculated.
53123         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53124         is updated, new MediaQuerySet is created and applied to the style element then, document
53125         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53126         for media query should be updated as well in order to sync with new media query set value.
53127
53128         Test: fast/media/mq-js-update-media.html
53129
53130         * css/CSSStyleSheet.cpp:
53131         (WebCore::CSSStyleSheet::setMediaQueries):
53132         * html/HTMLStyleElement.cpp:
53133         (WebCore::HTMLStyleElement::parseAttribute):
53134
53135 2012-10-09  Ben Murdoch  <benm@google.com>
53136
53137         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53138         https://bugs.webkit.org/show_bug.cgi?id=97689
53139
53140         Reviewed by Adam Barth.
53141
53142         In addition to the WebKit/chromium side of the change, remove the
53143         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53144         is a legitimate user of this API in cases where neither of the
53145         ASSERT'd conditions hold.
53146
53147         * page/SecurityOrigin.cpp:
53148         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53149
53150 2012-10-09  Jon Lee  <jonlee@apple.com>
53151
53152         Build fix for Qt Windows.
53153
53154         * html/HTMLPlugInElement.h: Include Image.h.
53155
53156 2012-10-09  Enrica Casucci  <enrica@apple.com>
53157
53158         Only measure text once instead of twice when performing line layout.
53159         https://bugs.webkit.org/show_bug.cgi?id=98317
53160         <rdar://problem/12080821>
53161
53162         Reviewed by Dan Bernstein.
53163
53164         Since we are measuring each word to find out where the line break should occur,
53165         we should cache that information to avoid measuring the run again when
53166         creating the line box. The bulk of the change is in nextLineBreak, where
53167         the measurements are collected and placed in a vector so that they can
53168         be consumed in setLogicalWidthForTextRun where we used to measure the
53169         text one more time.
53170         Each entry in the vector is a WordMeasurement object that contains information
53171         about the start and end offset in the run, the renderer, the measured width
53172         and, possibly, a list of fallback fonts.
53173         When we need to compute the width of the run to create the line box, we add
53174         all the measurements for the given renderer in the run to get the total width.
53175
53176         * platform/graphics/Font.cpp:
53177         (WebCore::Font::width): Added fallback fonts parameter.
53178         * platform/graphics/Font.h:
53179         (Font): Added fallback fonts parameter to the width static member function.
53180         This method is called when we compute the width using TextLayout.
53181         * platform/graphics/mac/ComplexTextController.cpp:
53182         (WebCore::TextLayout::width): Added fallback fonts parameter.
53183         (WebCore::Font::width):
53184         (WebCore::ComplexTextController::advance):
53185         * platform/graphics/mac/ComplexTextController.h:
53186         (ComplexTextController): Added fallback fonts parameter to advance method.
53187         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53188         * rendering/RenderBlockLineLayout.cpp:
53189         (WordMeasurement): Added new class to hold measurement information.
53190         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53191         cached information.
53192         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53193         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53194         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53195         vector and its use.
53196         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53197         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53198         the measurements of the individual words and add them to the vector.
53199
53200 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53201
53202         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53203         https://bugs.webkit.org/show_bug.cgi?id=98571
53204
53205         Reviewed by Emil A Eklund.
53206
53207         Refactoring all coordinate-switching functionality to use a single "mode" flag
53208         as opposed to having a bunch of boolean values. This enables the same set of
53209         options across the board, and a consistent interface. This was previously
53210         done for mapLocalToContainer.
53211
53212         The imptetus for this for this stems from the one logical change in this patch
53213         which only effects sub-pixel layout. FrameView::convertToRenderer and
53214         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53215         offsets to determine proper rects for scrolling.
53216
53217         Unlabeled functions below are simply being updated to these new interfaces.
53218
53219         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53220
53221         * WebCore.exp.in:
53222         * dom/ContainerNode.cpp:
53223         (WebCore::ContainerNode::getUpperLeftCorner):
53224         (WebCore::ContainerNode::getLowerRightCorner):
53225         * dom/Element.cpp:
53226         (WebCore::Element::boundsInRootViewSpace):
53227         * dom/MouseRelatedEvent.cpp:
53228         (WebCore::MouseRelatedEvent::computeRelativePosition):
53229         * dom/Node.cpp:
53230         (WebCore::Node::convertToPage):
53231         (WebCore::Node::convertFromPage):
53232         * html/HTMLSelectElement.cpp:
53233         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53234         * html/shadow/SliderThumbElement.cpp:
53235         (WebCore::SliderThumbElement::setPositionFromPoint):
53236         * html/shadow/SpinButtonElement.cpp:
53237         (WebCore::SpinButtonElement::defaultEventHandler):
53238         * page/FrameView.cpp:
53239         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53240         them to TransformState, which transforms the coordinates.
53241         (WebCore::FrameView::convertFromRenderer): Ditto.
53242         * rendering/LayoutState.cpp:
53243         (WebCore::LayoutState::LayoutState):
53244         * rendering/RenderBlock.cpp:
53245         (WebCore::RenderBlock::absoluteQuads):
53246         * rendering/RenderBox.cpp:
53247         (WebCore::RenderBox::absoluteQuads):
53248         (WebCore::RenderBox::mapLocalToContainer):
53249         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53250         * rendering/RenderBox.h:
53251         (RenderBox):
53252         * rendering/RenderBoxModelObject.cpp:
53253         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53254         * rendering/RenderBoxModelObject.h:
53255         (RenderBoxModelObject):
53256         * rendering/RenderEmbeddedObject.cpp:
53257         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53258         * rendering/RenderFrameSet.cpp:
53259         (WebCore::RenderFrameSet::userResize):
53260         * rendering/RenderGeometryMap.cpp:
53261         (WebCore::RenderGeometryMap::absolutePoint):
53262         * rendering/RenderInline.cpp:
53263         (WebCore::RenderInline::mapLocalToContainer):
53264         * rendering/RenderInline.h:
53265         (RenderInline):
53266         * rendering/RenderLayer.cpp:
53267         (WebCore::RenderLayer::absoluteToContents):
53268         (WebCore::RenderLayer::calculateClipRects):
53269         * rendering/RenderMediaControls.cpp:
53270         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53271         * rendering/RenderMenuList.cpp:
53272         (WebCore::RenderMenuList::showPopup):
53273         * rendering/RenderObject.cpp:
53274         (WebCore::RenderObject::localToAbsolute):
53275         (WebCore::RenderObject::absoluteToLocal):
53276         (WebCore::RenderObject::mapLocalToContainer):
53277         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53278         (WebCore::RenderObject::localToContainerQuad):
53279         (WebCore::RenderObject::localToContainerPoint):
53280         * rendering/RenderObject.h:
53281         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53282         now used for other conversion methods.
53283         (WebCore::RenderObject::localToAbsoluteQuad):
53284         * rendering/RenderTheme.cpp:
53285         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53286         * rendering/RenderView.cpp:
53287         (WebCore::RenderView::mapLocalToContainer):
53288         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53289         * rendering/RenderView.h:
53290         (RenderView):
53291         * rendering/svg/RenderSVGForeignObject.cpp:
53292         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53293         * rendering/svg/RenderSVGForeignObject.h:
53294         (RenderSVGForeignObject):
53295         * rendering/svg/RenderSVGInline.cpp:
53296         (WebCore::RenderSVGInline::mapLocalToContainer):
53297         * rendering/svg/RenderSVGInline.h:
53298         (RenderSVGInline):
53299         * rendering/svg/RenderSVGModelObject.cpp:
53300         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53301         * rendering/svg/RenderSVGModelObject.h:
53302         (RenderSVGModelObject):
53303         * rendering/svg/RenderSVGRoot.cpp:
53304         (WebCore::RenderSVGRoot::mapLocalToContainer):
53305         * rendering/svg/RenderSVGRoot.h:
53306         (RenderSVGRoot):
53307         * rendering/svg/RenderSVGText.cpp:
53308         (WebCore::RenderSVGText::mapLocalToContainer):
53309         * rendering/svg/RenderSVGText.h:
53310         (RenderSVGText):
53311         * rendering/svg/SVGRenderSupport.cpp:
53312         (WebCore::SVGRenderSupport::mapLocalToContainer):
53313         * svg/SVGSVGElement.cpp:
53314         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53315
53316 2012-10-09  Jon Lee  <jonlee@apple.com>
53317
53318         [WK2] Have plugins render offscreen to capture snapshot
53319         https://bugs.webkit.org/show_bug.cgi?id=98326
53320         <rdar://problem/12426658>
53321
53322         Reviewed by Simon Fraser.
53323
53324         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53325         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53326         lifetime of the Image.
53327
53328         * html/HTMLPlugInElement.h:
53329         (WebCore::HTMLPlugInElement::updateSnapshot):
53330         * html/HTMLPlugInImageElement.cpp:
53331         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53332         * html/HTMLPlugInImageElement.h:
53333         (HTMLPlugInImageElement):
53334         * rendering/RenderSnapshottedPlugIn.cpp:
53335         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53336         pointer.
53337         * rendering/RenderSnapshottedPlugIn.h:
53338         (RenderSnapshottedPlugIn):
53339
53340 2012-10-09  Adam Barth  <abarth@webkit.org>
53341
53342         Unreviewed. Move this file to where the build systems think it should
53343         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53344
53345         * platform/graphics/CustomFilterConstants.h: Removed.
53346         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53347
53348 2012-10-09  Tony Chang  <tony@chromium.org>
53349
53350         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53351         https://bugs.webkit.org/show_bug.cgi?id=98802
53352
53353         Reviewed by Eric Seidel.
53354
53355         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53356         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53357         the current values.
53358
53359         No new tests, this is just a refactoring.
53360
53361         * rendering/RenderImage.cpp:
53362         (WebCore::RenderImage::imageDimensionsChanged):
53363
53364 2012-10-09  Enrica Casucci  <enrica@apple.com>
53365
53366         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53367         background-canvas.html failing on the Mac after r130443
53368         https://bugs.webkit.org/show_bug.cgi?id=98545
53369
53370         Reviewed by Tony Chang.
53371
53372         Adding back the ! removed by mistake before submitting r130779. 
53373
53374         * platform/graphics/FontFastPath.cpp:
53375         (WebCore::Font::glyphDataAndPageForCharacter):
53376
53377 2012-10-09  Artem Simonov  <asimonov@rim.com>
53378
53379         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53380         https://bugs.webkit.org/show_bug.cgi?id=98796
53381
53382         Reviewed by George Staikos.
53383
53384         Reordered destruction of GraphicsContext3D so that the compositing layer is
53385         destroyed first.
53386
53387         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53388         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53389
53390 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53391
53392         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53393         https://bugs.webkit.org/show_bug.cgi?id=98061
53394
53395         Reviewed by Stephen White.
53396
53397         Normal anti-aliased text matches subpixel anti-aliased text.
53398         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53399         See crbug.com/152304 . 
53400
53401         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53402
53403         * platform/graphics/skia/FontSkia.cpp:
53404         (WebCore::setupPaint):
53405         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53406
53407 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53408
53409         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53410         https://bugs.webkit.org/show_bug.cgi?id=94755
53411
53412         Reviewed by Dean Jackson.
53413
53414         Factor out the vertex attribute size and offset constants into a new file,
53415         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53416
53417         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53418         FECustomFilter depend on CustomFilterMeshGenerator.
53419
53420         I also could have added the constants to CustomFilterMesh.h, but this would make
53421         CustomFilterMeshGenerator depend on CustomFilterMesh.
53422
53423         No new tests. No change in behavior.
53424
53425         * GNUmakefile.list.am:
53426         * Target.pri:
53427         * WebCore.gypi:
53428         * WebCore.vcproj/WebCore.vcproj:
53429         * WebCore.xcodeproj/project.pbxproj:
53430         * platform/graphics/CustomFilterConstants.h: Added.
53431         (WebCore):
53432         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53433         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53434             Use the new constants instead of literal values.
53435         * platform/graphics/filters/FECustomFilter.cpp:
53436         (WebCore::FECustomFilter::bindProgramAndBuffers):
53437             Pull the constant definitions out of here.
53438
53439 2012-10-09  Michael Saboff  <msaboff@apple.com>
53440
53441         MarkupAccumulator should optimally handle 8 bit Strings
53442         https://bugs.webkit.org/show_bug.cgi?id=98224
53443
53444         Reviewed by Ryosuke Niwa.
53445
53446         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53447         data as appropriate.  Also made it a member function of MarkupAccumulator.
53448
53449         No new tests, behavior covered by existing tests.
53450
53451         * editing/MarkupAccumulator.cpp:
53452         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53453         (WebCore::MarkupAccumulator::appendAttributeValue):
53454         (WebCore::MarkupAccumulator::appendNodeValue):
53455         * editing/MarkupAccumulator.h:
53456         (MarkupAccumulator):
53457         * editing/markup.cpp:
53458         (WebCore::StyledMarkupAccumulator::appendText):
53459         (WebCore::urlToMarkup):
53460
53461 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53462
53463         IndexedDB: Overflowing key generator should throw ConstraintError
53464         https://bugs.webkit.org/show_bug.cgi?id=98807
53465
53466         Reviewed by Tony Chang.
53467
53468         After the WebKit implementation landed throwing DataError, public-webapps
53469         consensus was that the exception thrown should be ConstraintError. Trivial
53470         change, and we pass one more W3C test submission.
53471
53472         Test: storage/indexeddb/key-generator.html
53473
53474         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53475         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53476
53477 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53478
53479         Fix the order of the statements in my previous build fix.
53480
53481         Reviewed by Gustavo Noronha Silva.
53482
53483         My previous build build fix for ResourceHandleSoup ordered the assignment
53484         of the local ResourceHandleInternal incorrectly. Instead of being before
53485         both assertions, it should be interspersed among them.
53486
53487         * platform/network/soup/ResourceHandleSoup.cpp:
53488         (WebCore::createSoupMessageForHandleAndRequest):
53489
53490 2012-10-09  Beth Dakin  <bdakin@apple.com>
53491
53492         https://bugs.webkit.org/show_bug.cgi?id=98457
53493         ScrollingStateNodes should be referenced via IDs on 
53494         RenderLayerBacking
53495
53496         Reviewed by Simon Fraser.
53497
53498         This patch associates all ScrollingStateNodes with a 
53499         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53500         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53501         root ScrollingStateNode was created immediately upon creation of the 
53502         ScrollingCoordinator, and it was constantly re-used for every main 
53503         FrameView. This doesn't work in the new model since that doesn't 
53504         allow that ScrollingStateNode to have a definite association with a 
53505         RenderLayerBacking. So this patch does also introduce some lifetime 
53506         differences with the ScrollingStateNodes.
53507
53508         If a page is going into the page cache, we should clear the state 
53509         tree. When the page is in the cache, we won't have access to the 
53510         RenderLayerBacking, and we don't want to be doing anything with the 
53511         ScrollingStateNodes anyway.
53512         * dom/Document.cpp:
53513         (WebCore::Document::setInPageCache):
53514
53515         When a page is restored from the page cache, call 
53516         frameViewRootLayerDidChange() to re-create the state tree.
53517         * loader/HistoryController.cpp:
53518         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53519
53520         This new FrameView function will return the scrollLayerID for a given FrameView.
53521         * page/FrameView.cpp:
53522         (WebCore::FrameView::scrollLayerID):
53523         (WebCore):
53524         * page/FrameView.h:
53525         (FrameView):
53526
53527         There is a lot of unfortunate fiddling with the terrible 
53528         if-defs in ScrollingCoordinator. I added a FIXME to the header
53529         noting how we can avoid this in the future.
53530         * page/scrolling/ScrollingCoordinator.cpp:
53531
53532         All of this code used to refer to the rootStateNode directly. 
53533         Instead, now it looks up the proper ScrollingStateNode for the given 
53534         FrameView in the HashMap.
53535         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53536         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53537         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53538         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53539         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53540         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53541         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53542         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53543         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53544         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53545
53546         Returns the existing ScrollingStateNode for a given FrameView by 
53547         looking it up in the HashMap.
53548         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53549
53550         This is called when a RenderLayerBacking is destroyed. At that time, 
53551         its associated ScrollingStateNode is destroyed.
53552         (WebCore::ScrollingCoordinator::detachFromStateTree):
53553
53554         clearStateTree() clears the HashMap and destroys all of the nodes in 
53555         the current state tree.
53556         (WebCore::ScrollingCoordinator::clearStateTree):
53557
53558         Creates a new root state node for the given FrameView.
53559         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53560
53561         Some new functions for the new node stuff.
53562         * page/scrolling/ScrollingCoordinator.h:
53563         * page/scrolling/ScrollingCoordinatorNone.cpp:
53564         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53565         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53566         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53567         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53568         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53569         (WebCore::ScrollingCoordinator::detachFromStateTree):
53570         (WebCore::ScrollingCoordinator::clearStateTree):
53571         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53572         (WebCore::setScrollParameters):
53573         (WebCore::setWheelEventHandlerCount):
53574
53575         New remove functions are used when the sate tree is cleared and when 
53576         a RenderLayerBacking is destroyed.
53577         * page/scrolling/ScrollingStateNode.cpp:
53578         (WebCore::ScrollingStateNode::removeChild):
53579         (WebCore):
53580         * page/scrolling/ScrollingStateNode.h:
53581         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53582         (ScrollingStateNode):
53583         (WebCore::ScrollingStateNode::parent):
53584
53585         New convenience function for casting to ScrollingStateScrollingNodes.
53586         * page/scrolling/ScrollingStateScrollingNode.h:
53587         (WebCore::toScrollingStateScrollingNode):
53588         (WebCore):
53589
53590         No longer automatically create a root node upon creation of the 
53591         ScrollingStateTree. We now want to wait to create the root node until 
53592         we have a RenderLayerBacking to associate it with.
53593         * page/scrolling/ScrollingStateTree.cpp:
53594         (WebCore::ScrollingStateTree::ScrollingStateTree):
53595         (WebCore::ScrollingStateTree::removeNode):
53596         (WebCore):
53597         * page/scrolling/ScrollingStateTree.h:
53598         (WebCore::ScrollingStateTree::setRootStateNode):
53599         (ScrollingStateTree):
53600
53601         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53602         this RenderLayerBacking is represented in the scrolling tree, then 
53603         the ID with be unique and non-zero. 
53604         * rendering/RenderLayerBacking.cpp:
53605         (WebCore::RenderLayerBacking::RenderLayerBacking):
53606         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53607         (WebCore::generateScrollLayerID):
53608         (WebCore):
53609         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53610         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53611         * rendering/RenderLayerBacking.h:
53612         (RenderLayerBacking):
53613         (WebCore::RenderLayerBacking::scrollLayerID):
53614
53615         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53616         from RenderLayerCompositor::attachRootLayer() to 
53617         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53618         site is that there is no backing at that time, so we are trying to set 
53619         state on the root scrolling state node before we have enough 
53620         information to create that node and add it to the HashMap.
53621         * rendering/RenderLayerCompositor.cpp:
53622         (WebCore::RenderLayerCompositor::updateBacking):
53623         (WebCore::RenderLayerCompositor::attachRootLayer):
53624
53625 2012-10-09  Florin Malita  <fmalita@chromium.org>
53626
53627         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53628         https://bugs.webkit.org/show_bug.cgi?id=98683
53629
53630         Reviewed by Darin Adler.
53631
53632         Eric's notes:
53633
53634         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53635         They do basically the same thing, and the former is much more common (and less code). It's
53636         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53637
53638         No new tests, refactoring. 
53639
53640         * rendering/svg/SVGResources.cpp:
53641         (WebCore::clipperFilterMaskerTags):
53642         (WebCore::markerTags):
53643         (WebCore::fillAndStrokeTags):
53644         (WebCore::chainableResourceTags):
53645         (WebCore::SVGResources::buildCachedResources):
53646
53647 2012-10-09  Enrica Casucci  <enrica@apple.com>
53648
53649         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53650         failing on the Mac after r130443
53651         https://bugs.webkit.org/show_bug.cgi?id=98545
53652
53653         Reviewed by Tony Chang.
53654
53655         Fixes a regression introduced with r130443.
53656         No new tests added since we already have tests covering this.
53657         Updated TestExpectations for chromium and mac.
53658
53659         * platform/graphics/FontFastPath.cpp:
53660         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53661         taken into account if the character is an ideograph or a symbol.
53662
53663 2012-10-09  Philip Rogers  <pdr@google.com>
53664
53665         Prevent animation when CSS attributeType is invalid.
53666         https://bugs.webkit.org/show_bug.cgi?id=94569
53667
53668         Reviewed by Dirk Schulze.
53669
53670         This patch changes hasValidAttributeType() to return false when
53671         we have attributeType=CSS with a non-CSS attribute name.
53672
53673         Previously we would animate non-CSS attributes when attributeType was
53674         CSS which resulted in crashes. To track this case, this patch catches
53675         changes to targetElement, attributeName, and attributeType and checks
53676         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53677         will return true causing hasValidAttributeType() to return false and prevent
53678         the animation from running.
53679
53680         Tests: svg/animations/animate-css-xml-attributeType.html
53681                svg/animations/invalid-css-attribute-crash-expected.svg
53682                svg/animations/invalid-css-attribute-crash.svg
53683
53684         * svg/SVGAnimateElement.cpp:
53685         (WebCore::SVGAnimateElement::hasValidAttributeType):
53686         (WebCore::SVGAnimateElement::targetElementWillChange):
53687         * svg/SVGAnimationElement.cpp:
53688         (WebCore::SVGAnimationElement::SVGAnimationElement):
53689         (WebCore::SVGAnimationElement::isSupportedAttribute):
53690
53691             This now supports the attributeType attribute which is stored in m_attributeType.
53692
53693         (WebCore::SVGAnimationElement::parseAttribute):
53694         (WebCore::SVGAnimationElement::setAttributeType):
53695
53696             Changes to attributeType, attributeName, and targetElement need to be tracked
53697             to determine when an invalid combination happens.
53698
53699         (WebCore::SVGAnimationElement::targetElementWillChange):
53700         (WebCore):
53701         (WebCore::SVGAnimationElement::setAttributeName):
53702         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53703         * svg/SVGAnimationElement.h:
53704         (WebCore::SVGAnimationElement::attributeType):
53705         (SVGAnimationElement):
53706         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53707         * svg/animation/SVGSMILElement.cpp:
53708         (WebCore::SVGSMILElement::targetElement):
53709         * svg/animation/SVGSMILElement.h:
53710         (SVGSMILElement):
53711
53712 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53713
53714         max-width property is does not overriding the width properties for css tables(display:table)
53715         https://bugs.webkit.org/show_bug.cgi?id=98455
53716
53717         Reviewed by Tony Chang.
53718
53719         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53720         the computed was not being limited by the max-width property. The current patch fixes this issue.
53721
53722         Test: fast/table/css-table-max-width.html
53723
53724         * rendering/RenderTable.cpp:
53725         (WebCore::RenderTable::updateLogicalWidth):
53726          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53727          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53728            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53729            2) Computed LogicalWidth = min-width, when min-width > max-width.
53730
53731 2012-10-09  Harald Alvestrand  <hta@google.com>
53732
53733         Change PeerConnection getStats function to single value local / remote
53734         elements in RTCStatsReport.
53735
53736         https://bugs.webkit.org/show_bug.cgi?id=98753
53737
53738         Reviewed by Adam Barth.
53739
53740         IDL of RTCStatsReport has been changed to make local/remote
53741         single valued RTCStatsElement attributes.
53742         The RTCStatsReport argument to index the list of RTCStatsElement
53743         in the local and remote functions has been removed.
53744
53745         Tested by modifications to RTCPeerConnection-stats.html
53746
53747         * Modules/mediastream/RTCStatsReport.cpp:
53748         (WebCore::RTCStatsReport::addElement):
53749         (WebCore::RTCStatsReport::addStatistic):
53750         * Modules/mediastream/RTCStatsReport.h:
53751         (WebCore::RTCStatsReport::local):
53752         (WebCore::RTCStatsReport::remote):
53753         (RTCStatsReport):
53754         * Modules/mediastream/RTCStatsReport.idl:
53755         * Modules/mediastream/RTCStatsResponse.cpp:
53756         (WebCore::RTCStatsResponse::addElement):
53757         (WebCore::RTCStatsResponse::addStatistic):
53758         * Modules/mediastream/RTCStatsResponse.h:
53759         (RTCStatsResponse):
53760         * platform/chromium/support/WebRTCStatsResponse.cpp:
53761         (WebKit::WebRTCStatsResponse::addElement):
53762         (WebKit::WebRTCStatsResponse::addStatistic):
53763         * platform/mediastream/RTCStatsResponseBase.h:
53764         (RTCStatsResponseBase):
53765
53766 2012-10-09  Antonio Gomes  <agomes@rim.com>
53767
53768         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53769         https://bugs.webkit.org/show_bug.cgi?id=98756
53770
53771         Reviewed by Rob Buis.
53772
53773         No behavior change so no new tests.
53774
53775         * css/StyleResolver.cpp:
53776         (WebCore::StyleResolver::collectMatchingRulesForList):
53777
53778 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53779
53780         [Qt] Fix build with QtMultimedia
53781
53782         Reviewed by Tor Arne Vestbø.
53783
53784         This is an initial rudimentary port to of the QtMultimedia back-end,
53785         adapted to slight API changes and (more importantly) to the
53786         implementation of QAbstractVideoSurface instead of using
53787         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53788
53789         * WebCore.pri:
53790         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53791         (WebCore::MediaPlayerPrivateQt::supportsType):
53792         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53793         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53794         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53795         (WebCore::MediaPlayerPrivateQt::totalBytes):
53796         (WebCore::MediaPlayerPrivateQt::setVisible):
53797         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53798         (WebCore::MediaPlayerPrivateQt::setSize):
53799         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53800         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53801         (WebCore):
53802         (WebCore::MediaPlayerPrivateQt::start):
53803         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53804         (WebCore::MediaPlayerPrivateQt::present):
53805         (WebCore::MediaPlayerPrivateQt::paint):
53806         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53807         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53808         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53809         (MediaPlayerPrivateQt):
53810
53811 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53812
53813         Allow users to specify a different hover image for TextFieldDecorationElement
53814         https://bugs.webkit.org/show_bug.cgi?id=93662
53815
53816         Reviewed by Kent Tamura.
53817
53818         * html/shadow/TextFieldDecorationElement.cpp:
53819         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53820         (WebCore::TextFieldDecorationElement::updateImage):
53821         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53822         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53823         (WebCore):
53824         * html/shadow/TextFieldDecorationElement.h:
53825         (TextFieldDecorator):
53826         (TextFieldDecorationElement):
53827
53828 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53829
53830         [Qt] Uploading images to Google+ using QtWebKit does not work.
53831         https://bugs.webkit.org/show_bug.cgi?id=72329
53832
53833         Reviewed by Jocelyn Turcotte.
53834
53835         Implement handling of Blob FormData, including its extensions to the File FormData.
53836
53837         * platform/network/qt/QNetworkReplyHandler.cpp:
53838         (WebCore::FormDataIODevice::FormDataIODevice):
53839         (WebCore::appendBlobResolved):
53840         (WebCore::FormDataIODevice::prepareFormElements):
53841         (WebCore::FormDataIODevice::computeSize):
53842         (WebCore::FormDataIODevice::moveToNextElement):
53843         (WebCore::FormDataIODevice::prepareCurrentElement):
53844         (WebCore::FormDataIODevice::openFileForCurrentElement):
53845         (WebCore::FormDataIODevice::readData):
53846         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53847         * platform/network/qt/QNetworkReplyHandler.h:
53848         (FormDataIODevice):
53849
53850 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53851
53852         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53853         https://bugs.webkit.org/show_bug.cgi?id=93829
53854
53855         Reviewed by Abhishek Arya.
53856
53857         If a container's style and its pseudo :first-line style have unique
53858         text-decorations specified for them, only the :first-line text-decoarations
53859         were being applied.
53860
53861         The uploaded patch intends to first compute the text decoration colors
53862         for the containing box, followed by that of the first-line (if specified).
53863
53864         This thus avoids the condition wherein our containing box's text-decorations
53865         were not getting applied at all since initially we were only computing
53866         for the first-line style.
53867
53868         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53869
53870         * rendering/InlineTextBox.cpp:
53871         (WebCore::InlineTextBox::paintDecoration):
53872         getTextDecorationColors() is first called for computing the containing box's
53873         text-decoration values and then for first-line style's text-decorations,
53874         if specified.
53875
53876 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53877
53878         Unreviewed, rolling out r130746.
53879         http://trac.webkit.org/changeset/130746
53880         https://bugs.webkit.org/show_bug.cgi?id=98749
53881
53882         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53883
53884         * platform/network/qt/QNetworkReplyHandler.cpp:
53885         (WebCore::FormDataIODevice::FormDataIODevice):
53886         (WebCore::FormDataIODevice::computeSize):
53887         (WebCore::FormDataIODevice::moveToNextElement):
53888         (WebCore::FormDataIODevice::openFileForCurrentElement):
53889         (WebCore::FormDataIODevice::readData):
53890         (WebCore::QNetworkReplyHandler::getIODevice):
53891         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53892         * platform/network/qt/QNetworkReplyHandler.h:
53893         (QNetworkReplyHandler):
53894         (FormDataIODevice):
53895
53896 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53897
53898         [Qt] Uploading images to Google+ using QtWebKit does not work.
53899         https://bugs.webkit.org/show_bug.cgi?id=72329
53900
53901         Reviewed by Jocelyn Turcotte.
53902
53903         Implement handling of Blob FormData, including its extensions to the File FormData.
53904
53905         * platform/network/qt/QNetworkReplyHandler.cpp:
53906         (WebCore::FormDataIODevice::FormDataIODevice):
53907         (WebCore::FormDataIODevice::computeSize):
53908         (WebCore::FormDataIODevice::moveToNextElement):
53909         (WebCore::FormDataIODevice::prepareCurrentElement):
53910         (WebCore::FormDataIODevice::openFileForCurrentElement):
53911         (WebCore::FormDataIODevice::readData):
53912         (WebCore::QNetworkReplyHandler::getIODevice):
53913         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53914         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53915         * platform/network/qt/QNetworkReplyHandler.h:
53916         (QNetworkReplyHandler):
53917         (FormDataIODevice):
53918
53919 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53920
53921         Page popup should be smarter about its layout
53922         https://bugs.webkit.org/show_bug.cgi?id=98499
53923
53924         Reviewed by Kent Tamura.
53925
53926         This change fixes these two issues:
53927         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53928         2. Page popup should resize itself when it doesn't fit.
53929
53930         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53931
53932         * Resources/pagepopups/calendarPicker.js:
53933         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53934         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53935         (handleMessage):
53936         (initialize):
53937         (handleArgumentsTimeout):
53938         * Resources/pagepopups/pickerCommon.js:
53939         (Rect): Represents an axis aligned rectangle.
53940         (Rect.prototype.get maxX): Gets position of right edge.
53941         (Rect.prototype.get maxY): Gets position of bottom edge.
53942         (Rect.prototype.toString):
53943         (Rect.intersection): Returns the intersection of two rectangles.
53944         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53945         (adjustWindowRect): Calculates the best position and size for the popup.
53946         (_adjustWindowRectVertically):
53947         (_adjustWindowRectHorizontally):
53948         (setWindowRect): Sets the position and size of the popup to the given rect.
53949         * Resources/pagepopups/suggestionPicker.css:
53950         (.suggestion-list): Don't show horizontal scroll bar.
53951         * Resources/pagepopups/suggestionPicker.js:
53952         (SuggestionPicker.prototype._fixWindowSize): 
53953         * page/PagePopupClient.cpp:
53954         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53955         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53956         (WebCore):
53957         * page/PagePopupClient.h:
53958         (PagePopupClient):
53959
53960 2012-10-09  Hajime Morrita  <morrita@google.com>
53961
53962         [Refactoring] Scoped Style related code should have its own class.
53963         https://bugs.webkit.org/show_bug.cgi?id=98244
53964
53965         Reviewed by Dimitri Glazkov.
53966
53967         This change extracts StyleScopeResolver from StyleResolver to clarify
53968         the responsibility of the style scope handling. Now we can easily see
53969         where the style scoping needs to be involed.
53970
53971         Coming Shadow DOM related change like @host rules will fit within this class.
53972
53973         No new tests, refactoring.
53974
53975         * CMakeLists.txt:
53976         * GNUmakefile.list.am:
53977         * Target.pri:
53978         * WebCore.gypi:
53979         * WebCore.xcodeproj/project.pbxproj:
53980         * css/CSSAllInOne.cpp:
53981         * css/StyleResolver.cpp:
53982         (WebCore::StyleResolver::StyleResolver):
53983         (WebCore::StyleResolver::collectFeatures):
53984         (WebCore::StyleResolver::appendAuthorStylesheets):
53985         (WebCore::StyleResolver::pushParentElement):
53986         (WebCore::StyleResolver::popParentElement):
53987         (WebCore::StyleResolver::pushParentShadowRoot):
53988         (WebCore::StyleResolver::popParentShadowRoot):
53989         (WebCore::StyleResolver::matchScopedAuthorRules):
53990         (WebCore::StyleResolver::collectMatchingRulesForList):
53991         (WebCore::StyleResolver::reportMemoryUsage):
53992         * css/StyleResolver.h:
53993         (StyleResolver):
53994         * css/StyleScopeResolver.cpp: Added.
53995         (WebCore):
53996         (WebCore::StyleScopeResolver::StyleScopeResolver):
53997         (WebCore::StyleScopeResolver::~StyleScopeResolver):
53998         (WebCore::StyleScopeResolver::scopeFor):
53999         (WebCore::StyleScopeResolver::ruleSetFor):
54000         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54001         (WebCore::StyleScopeResolver::setupStack):
54002         (WebCore::StyleScopeResolver::push):
54003         (WebCore::StyleScopeResolver::pop):
54004         (WebCore::StyleScopeResolver::collectFeaturesTo):
54005         (WebCore::StyleScopeResolver::reportMemoryUsage):
54006         * css/StyleScopeResolver.h: Added.
54007         (WebCore):
54008         (StyleScopeResolver):
54009         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
54010         (StackFrame):
54011         (WebCore::StyleScopeResolver::hasScopedStyles):
54012         (WebCore::StyleScopeResolver::stackSize):
54013         (WebCore::StyleScopeResolver::stackFrameAt):
54014         (WebCore::StyleScopeResolver::matchesStyleBounds):
54015         (WebCore::StyleScopeResolver::stackIsConsistent):
54016         (WebCore::StyleScopeResolver::ensureStackConsistency):
54017         (WebCore::StyleScopeResolver::scopeFor):
54018         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54019
54020 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
54021
54022         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
54023         https://bugs.webkit.org/show_bug.cgi?id=98268
54024
54025         Reviewed by Tor Arne Vestbø.
54026
54027         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
54028
54029         QStyleFacade is a pure interface that lives in WebCore/platform/qt
54030         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
54031         minimal interface of what we need to draw with QStyle as well as basic
54032         hit testing and metric retrieval. It also provides a
54033         QStyleFacadeOption class that aggregates common meta-data for
54034         rendering primitives, such as direction, rectangle, state (sunken,
54035         enabled, etc.) or palette. It also provides some more slider/scrollbar
54036         specific fields in a slider sub-structure.
54037
54038         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
54039         them with state information from render objects, before calling straight to QStyle. Most of the common code
54040         was encapsulated in StylePainterQStyle.
54041
54042         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
54043         StylePainterQStyle to populate state into QStyleFacadeOption before
54044         calling into QStyleFacade.
54045
54046         The style facade is then implemented by QStyleFacadeImp, which extracts
54047         meta-data from QStyleFacadeOption arguments, populates style
54048         primitive specific QStyleOption objects and then calls on QStyle.
54049
54050         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
54051         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
54052         separate QtWebKitWidgets library in the future and therefore cannot use
54053         any WebCore types.
54054
54055         * Target.pri:
54056         * platform/qt/QStyleFacade.cpp: Added.
54057         (WebCore):
54058         (WebCore::QStyleFacade::styleForPage):
54059         * platform/qt/QStyleFacade.h: Added.
54060         (WebCore):
54061         (QStyleFacade):
54062         (WebCore::QStyleFacade::~QStyleFacade):
54063         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
54064         (QStyleFacadeOption):
54065         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
54066         (WebCore):
54067         (WebCore::RenderThemeQStyle::getStylePainter):
54068         (WebCore::StylePainterQStyle::StylePainterQStyle):
54069         (WebCore::StylePainterQStyle::init):
54070         (WebCore::RenderThemeQStyle::create):
54071         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
54072         (WebCore::RenderThemeQStyle::styleFactory):
54073         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
54074         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
54075         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
54076         (WebCore::RenderThemeQStyle::inflateButtonRect):
54077         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
54078         (WebCore::RenderThemeQStyle::adjustButtonStyle):
54079         (WebCore::RenderThemeQStyle::setButtonPadding):
54080         (WebCore::RenderThemeQStyle::paintButton):
54081         (WebCore::RenderThemeQStyle::paintTextField):
54082         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
54083         (WebCore::RenderThemeQStyle::paintTextArea):
54084         (WebCore::RenderThemeQStyle::setPopupPadding):
54085         (WebCore::RenderThemeQStyle::colorPalette):
54086         (WebCore::RenderThemeQStyle::paintMenuList):
54087         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
54088         (WebCore::RenderThemeQStyle::paintMenuListButton):
54089         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
54090         (WebCore::RenderThemeQStyle::paintProgressBar):
54091         (WebCore::RenderThemeQStyle::paintSliderTrack):
54092         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
54093         (WebCore::RenderThemeQStyle::paintSliderThumb):
54094         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
54095         (WebCore::RenderThemeQStyle::paintSearchField):
54096         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
54097         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
54098         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54099         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54100         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54101         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54102         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54103         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54104         (WebCore):
54105         (RenderThemeQStyle):
54106         (WebCore::RenderThemeQStyle::qStyle):
54107         (StylePainterQStyle):
54108         (WebCore::StylePainterQStyle::isValid):
54109         (WebCore::StylePainterQStyle::paintButton):
54110         (WebCore::StylePainterQStyle::paintTextField):
54111         (WebCore::StylePainterQStyle::paintComboBox):
54112         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54113         (WebCore::StylePainterQStyle::paintSliderTrack):
54114         (WebCore::StylePainterQStyle::paintSliderThumb):
54115         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54116         (WebCore::StylePainterQStyle::paintProgressBar):
54117         (WebCore::StylePainterQStyle::paintScrollCorner):
54118         (WebCore::StylePainterQStyle::paintScrollBar):
54119         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54120         (WebCore):
54121         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54122         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54123         (WebCore::scPart):
54124         (WebCore::scrollbarPart):
54125         (WebCore::initSliderStyleOption):
54126         (WebCore::ScrollbarThemeQStyle::paint):
54127         (WebCore::ScrollbarThemeQStyle::hitTest):
54128         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54129         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54130         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54131         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54132         (WebCore::ScrollbarThemeQStyle::thumbLength):
54133         (WebCore::ScrollbarThemeQStyle::trackPosition):
54134         (WebCore::ScrollbarThemeQStyle::trackLength):
54135         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54136         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54137         (WebCore):
54138         (ScrollbarThemeQStyle):
54139         (WebCore::ScrollbarThemeQStyle::qStyle):
54140
54141 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54142
54143         Throttle DOM timers on hidden pages.
54144         https://bugs.webkit.org/show_bug.cgi?id=98474
54145
54146         Reviewed by Maciej Stachowiak.
54147
54148         When the visibility of a page changes to "hidden", all it's DOM timers are
54149         updated to align their fire times on one second intervals.  This limits the
54150         number of CPU wakes due to a hidden pages to one per second.
54151
54152         Test: fast/dom/timer-throttling-hidden-page.html
54153
54154         * Configurations/FeatureDefines.xcconfig:
54155         * WebCore.exp.in:
54156         * dom/Document.cpp:
54157         (WebCore):
54158         (WebCore::Document::timerAlignmentInterval):
54159         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54160
54161         * dom/Document.h:
54162         (Document):
54163         * dom/ScriptExecutionContext.cpp:
54164         (WebCore):
54165         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54166         Scan through self DOM Timers and tell them to recompute their fire
54167         time based on the updated alignment interval.
54168         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54169
54170         * dom/ScriptExecutionContext.h:
54171         (ScriptExecutionContext):
54172         * page/DOMTimer.cpp:
54173         (WebCore):
54174         (WebCore::DOMTimer::alignedFireTime):
54175         If the document's alignment interval is non zero, round up the fire
54176         time to the next multiple of alignment interval.
54177
54178         * page/DOMTimer.h:
54179         (DOMTimer):
54180         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54181         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54182         * page/Page.cpp:
54183         (WebCore::Page::Page):
54184         (WebCore):
54185         (WebCore::Page::setTimerAlignmentInterval):
54186         (WebCore::Page::timerAlignmentInterval):
54187         (WebCore::Page::setVisibilityState):
54188         Getter and Setter for alignment interval.  Expose setVisibilityState
54189         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54190         is enabled.
54191
54192         * page/Page.h:
54193         (Page):
54194         * page/Settings.cpp:
54195         (WebCore):
54196         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54197         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54198         (WebCore::Settings::setDOMTimerAlignmentInterval):
54199         (WebCore::Settings::domTimerAlignmentInterval):
54200         * page/Settings.h:
54201         (Settings):
54202         * page/SuspendableTimer.cpp:
54203         (WebCore::SuspendableTimer::suspend):
54204         Save the time remaining to the original unaligned fire time, so that
54205         on resuming, the fire time will be correctly aligned using the latest
54206         alignment interval.
54207
54208         * platform/ThreadTimers.cpp:
54209         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54210         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54211         them always in sync.
54212
54213         * platform/Timer.cpp:
54214         (WebCore::TimerBase::TimerBase):
54215         (WebCore::TimerBase::setNextFireTime):
54216         Save the requested fire time in m_unalignedNextFireTime and
54217         set m_nextFireTime to the aligned value.  The unalinged value
54218         is used to recompute fire time if alignment interval changes.
54219         (WebCore):
54220         (WebCore::TimerBase::didChangeAlignmentInterval):
54221         Recompute next fire time from m_unalignedNextFireTime.
54222         (WebCore::TimerBase::nextUnalignedFireInterval):
54223         Interval from current time to the original unaligned fire time.
54224
54225         * platform/Timer.h:
54226         (TimerBase):
54227         (WebCore::TimerBase::alignedFireTime):
54228
54229 2012-10-08  Andreas Kling  <kling@webkit.org>
54230
54231         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54232         <http://webkit.org/b/98670>
54233         <rdar://problem/12454276>
54234
54235         Reviewed by Anders Carlsson.
54236
54237         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54238         that it actually needs. Packed the whole thing into 64 bits.
54239
54240         Reduces memory consumption by 547kB on Membuster3.
54241
54242         * rendering/RenderTableCell.cpp:
54243
54244             Add compile-time size assertion for CollapsedBorderValue.
54245
54246         * rendering/style/CollapsedBorderValue.h:
54247         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54248         (WebCore::CollapsedBorderValue::width):
54249         (WebCore::CollapsedBorderValue::style):
54250         (WebCore::CollapsedBorderValue::color):
54251         (WebCore::CollapsedBorderValue::isTransparent):
54252         (WebCore::CollapsedBorderValue::precedence):
54253         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54254         (CollapsedBorderValue):
54255
54256             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54257             the class only has primitive members now.
54258
54259 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54260
54261         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54262         https://bugs.webkit.org/show_bug.cgi?id=98710
54263
54264         Reviewed by Kent Tamura.
54265
54266         This patch gets rid of C/C++ implementation dependent behavior from
54267         HTMLSelectElement::typeAheadFind() which does modulo operation with
54268         a negative operand.
54269
54270         HTMLSelectElement::typeAheadFind() contains expression with modulo
54271         operator and dividend can be -1 when the "select" element without
54272         "option" element but "optgroup" element.
54273
54274         Test: fast/forms/select/select-typeahead-crash.html
54275
54276         * html/HTMLSelectElement.cpp:
54277         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54278         operation with both operands are non-negative.
54279
54280 2012-10-08  Kent Tamura  <tkent@chromium.org>
54281
54282         Take account of overflowing values for width calculation of a year sub-field
54283         https://bugs.webkit.org/show_bug.cgi?id=98506
54284
54285         Reviewed by Eric Seidel.
54286
54287         When we decide the width of a year field of an input[type=date]
54288         with the multiple fields UI, we need to take account of the
54289         current value width because we allow to set overflowing values to
54290         the input[type=date].
54291
54292         This change affects only platforms with INPUT_TYPE_DATE &&
54293         INPUT_MULTIPLE_FIELDS_UI.
54294
54295         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54296
54297         * html/shadow/DateTimeNumericFieldElement.cpp:
54298         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54299         Take account of the current value width.
54300
54301 2012-10-08  Tony Chang  <tony@chromium.org>
54302
54303         image not displayed in flexbox
54304         https://bugs.webkit.org/show_bug.cgi?id=98611
54305
54306         Reviewed by Ojan Vafai.
54307
54308         Flexbox will override the width of a child and when stretching, will override the height of the child.
54309         When this happens, when an image loads, it checks to see if it's width/height has
54310         changed, and if so, does a relayout.  The overridden width/height was preventing this
54311         relayout from happening.
54312
54313         To fix, we clear all the override sizes when we're done laying out the flex children.
54314
54315         Test: css3/flexbox/relayout-image-load.html
54316
54317         * rendering/RenderFlexibleBox.cpp:
54318         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54319         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54320         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54321         here since it should have already been cleared.
54322         * rendering/RenderFlexibleBox.h:
54323
54324 2012-10-08  Andreas Kling  <kling@webkit.org>
54325
54326         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54327         <http://webkit.org/b/98686>
54328
54329         Reviewed by Tony Chang.
54330
54331         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54332         item order is preserved.
54333
54334         * platform/chromium/ChromiumDataObject.cpp:
54335         (WebCore::ChromiumDataObject::createFromPasteboard):
54336
54337 2012-10-08  Eric Seidel  <eric@webkit.org>
54338
54339         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54340         https://bugs.webkit.org/show_bug.cgi?id=98703
54341
54342         Reviewed by Emil A Eklund.
54343
54344         This is very small potatoes.  There are much bigger wins for table layout yet, but
54345         this was an easy win.
54346
54347         This function should probably be converted to use int's only, as table cells are pixel-sized
54348         according to our subpixel-experts.
54349
54350         Also, I suspect there should be ways to early return with less-math in the common cases, but
54351         I've saved such for a later patch.
54352
54353         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54354         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54355
54356         This single function is about 11% of total time for robohornet's resizecol.
54357
54358         * rendering/RenderTableCell.cpp:
54359         * rendering/RenderTableCell.h:
54360         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54361
54362 2012-10-08  Alec Flett  <alecflett@chromium.org>
54363
54364         IndexedDB: remove autogenerated objectStore/index id code
54365         https://bugs.webkit.org/show_bug.cgi?id=98085
54366
54367         Reviewed by Tony Chang.
54368
54369         Remove support for backend-generated objectstore and index
54370         ids. The frontend objects now manage that state during
54371         versionchange transactions. The IDBDatabaseBackendInterface and
54372         IDBObjectStoreBackendInterface methods will go away when
54373         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54374
54375         No new tests as this is part of a refactoring, existing indexeddb
54376         tests cover correctness.
54377
54378         * Modules/indexeddb/IDBBackingStore.h:
54379         (IDBBackingStore):
54380         * Modules/indexeddb/IDBDatabase.cpp:
54381         (WebCore::IDBDatabase::createObjectStore):
54382         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54383         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54384         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54385         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54386         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54387         (IDBDatabaseBackendInterface):
54388         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54389         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54390         (WebCore::setMaxIndexId):
54391         (WebCore::IDBLevelDBBackingStore::createIndex):
54392         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54393         (IDBLevelDBBackingStore):
54394         * Modules/indexeddb/IDBObjectStore.cpp:
54395         (WebCore::IDBObjectStore::createIndex):
54396         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54397         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54398         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54399         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54400         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54401
54402 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54403
54404         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54405         https://bugs.webkit.org/show_bug.cgi?id=98630
54406
54407         Reviewed by Martin Robinson.
54408
54409         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54410         CAIRO needs to adjust the source size to the scaled value.
54411
54412         No new tests.
54413
54414         * platform/graphics/cairo/BitmapImageCairo.cpp:
54415         (WebCore::BitmapImage::draw):
54416
54417 2012-10-08  Adam Barth  <abarth@webkit.org>
54418
54419         Remove unused features of BlobBuilder
54420         https://bugs.webkit.org/show_bug.cgi?id=98331
54421
54422         Reviewed by Eric Seidel.
54423
54424         Now that we don't expose BlobBuilder as a web platform API, we can
54425         strip down the class to handle only those cases that are needed by the
54426         Blob constructor.
54427
54428         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54429         made it stack allocated rather than RefCounted. A future patch will
54430         actually move the files around. (I didn't want to mix moving code
54431         around with modifying the code.)
54432
54433         * bindings/js/JSBlobCustom.cpp:
54434         (WebCore::JSBlobConstructor::constructJSBlob):
54435         * bindings/v8/custom/V8BlobCustom.cpp:
54436         (WebCore::V8Blob::constructorCallback):
54437         * fileapi/WebKitBlobBuilder.cpp:
54438         (WebCore):
54439         (WebCore::BlobBuilder::BlobBuilder):
54440         (WebCore::BlobBuilder::getBuffer):
54441         (WebCore::BlobBuilder::append):
54442         (WebCore::BlobBuilder::appendBytesData):
54443         (WebCore::BlobBuilder::getBlob):
54444         * fileapi/WebKitBlobBuilder.h:
54445         (WebCore):
54446         (BlobBuilder):
54447         * page/FeatureObserver.h:
54448
54449 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54450
54451         Try to fix the debug build after r130699
54452
54453         Move the assignment of the ResourceHandleInternal local to before
54454         the include statement where it is used.
54455
54456         * platform/network/soup/ResourceHandleSoup.cpp:
54457         (WebCore::createSoupMessageForHandleAndRequest):
54458
54459 2012-10-08  Nate Chapin  <japhet@chromium.org>
54460
54461         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54462         https://bugs.webkit.org/show_bug.cgi?id=98463
54463
54464         Reviewed by Eric Seidel.
54465
54466         No new tests, refactor only.
54467
54468         * rendering/RenderLayer.cpp:
54469         (WebCore::frameElementAndViewPermitScroll):
54470         (WebCore::RenderLayer::scrollRectToVisible):
54471
54472 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54473
54474         [Soup] Simplify the way that requests are started
54475         https://bugs.webkit.org/show_bug.cgi?id=98532
54476
54477         Reviewed by Gustavo Noronha Silva.
54478
54479         Simplify the creation of the libsoup request and message when kicking off
54480         requests, by elminating a bit of duplicate code.
54481
54482         No new tests. This should not change any behavior.
54483
54484         * platform/network/ResourceHandle.h:
54485         (ResourceHandle):
54486         * platform/network/soup/ResourceHandleSoup.cpp:
54487         (WebCore):
54488         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54489         is initialized when passing it to the caller.
54490         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54491         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54492         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54493         non-HTTP request creation into this helper.
54494         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54495         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54496         helpers to create and send the request, duplicating the logic for sending it
54497         across the file, add this method which can be used in both cases.
54498         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54499         the question of whether or not the request is ready to be sent, but is unsent.
54500         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54501         * platform/network/soup/ResourceRequest.h:
54502         (ResourceRequest): Added a new method for getting the URL string for soup.
54503         * platform/network/soup/ResourceRequestSoup.cpp:
54504         (WebCore::ResourceRequest::urlStringForSoup): Added.
54505
54506 2012-10-08  Eric Seidel  <eric@webkit.org>
54507
54508         Make no-column table-layout cases a little faster with inlining
54509         https://bugs.webkit.org/show_bug.cgi?id=98566
54510
54511         Reviewed by Julien Chaffraix.
54512
54513         This change is almost not worth it at only a couple percent boost on
54514         http://www.robohornet.org/tests/resizecol.html
54515         However, I think the logicalWidthFromTableColumn split it kinda nice
54516         so I've decided to post it anyway.
54517
54518         * rendering/RenderTable.cpp:
54519         (WebCore::RenderTable::slowColElement):
54520         * rendering/RenderTable.h:
54521         (WebCore::RenderTable::colElement):
54522         (RenderTable):
54523         * rendering/RenderTableCell.cpp:
54524         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54525         * rendering/RenderTableCell.h:
54526         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54527         (RenderTableCell):
54528
54529 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54530
54531         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54532         https://bugs.webkit.org/show_bug.cgi?id=98631
54533
54534         Reviewed by Eric Seidel.
54535
54536         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54537
54538         The current name is confusing since the function actually gets the
54539         the cached first-line styles.
54540         It also makes the name more descriptive of its functionality
54541         and in accordance with RenderObject::uncachedFirstLineStyle().
54542
54543         No new tests required for this change since no change in behavior is expected.
54544
54545         * rendering/RenderObject.cpp:
54546         (WebCore::RenderObject::cachedFirstLineStyle):
54547         * rendering/RenderObject.h:
54548         (WebCore::RenderObject::firstLineStyle):
54549         (RenderObject):
54550         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54551         and made the associated changes.
54552
54553 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54554
54555         Some non-scrollable elements are added to non-fast-scrollable region
54556         https://bugs.webkit.org/show_bug.cgi?id=97927
54557
54558         Reviewed by James Robinson.
54559
54560         Only RenderLayers that can actually be scrolled should be added to the
54561         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54562         needlessly fall back to main thread scrolling.
54563
54564         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54565
54566         * rendering/RenderLayer.cpp:
54567         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54568         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54569
54570 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54571
54572         Move layerTreeAsText to window.internals
54573         https://bugs.webkit.org/show_bug.cgi?id=98690
54574
54575         Reviewed by James Robinson.
54576
54577         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54578         I'll remove testRunner.layerTreeAsText() in a later patch.
54579
54580         * testing/Internals.cpp:
54581         (WebCore::Internals::layerTreeAsText):
54582         * testing/Internals.h:
54583         (Internals):
54584         * testing/Internals.idl:
54585
54586 2012-10-08  Jon Lee  <jonlee@apple.com>
54587
54588         Add render object that paints plugin snapshots
54589         https://bugs.webkit.org/show_bug.cgi?id=98322
54590         <rdar://problem/12426546>
54591
54592         Reviewed by Simon Fraser.
54593
54594         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54595
54596         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54597         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54598         the generated poster image.
54599
54600         * html/HTMLPlugInElement.cpp:
54601         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54602         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54603         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54604         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54605         (WebCore::HTMLPlugInElement::setDisplayState):
54606         (WebCore::HTMLPlugInElement::updateSnapshot):
54607
54608         * html/HTMLPlugInImageElement.cpp:
54609         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54610         enabled, plugin state is set to wait for a poster image.
54611         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54612         plugin snapshotting is enabled.
54613         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54614         renderer and set its state to wait for user input to start the plugin.
54615         * html/HTMLPlugInImageElement.h:
54616         (HTMLPlugInImageElement):
54617
54618         * rendering/RenderObject.h:
54619         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54620         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54621         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54622         * rendering/RenderEmbeddedObject.h:
54623         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54624         RenderSnapshottedPlugIn to override.
54625
54626         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54627         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54628         resource.
54629         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54630         image resource to remove the renderer as a client, and remove image from memory cache.
54631         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54632         HTML element.
54633         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54634         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54635         RenderImage does.
54636         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54637         plugin is not playing.
54638         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54639         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54640         * rendering/RenderSnapshottedPlugIn.h: Added.
54641         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54642
54643         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54644         * rendering/RenderThemeMac.h:
54645         * rendering/RenderThemeMac.mm:
54646         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54647
54648         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54649         * CMakeLists.txt: Ditto.
54650         * GNUmakefile.list.am: Ditto.
54651         * Target.pri: Ditto.
54652         * WebCore.gypi: Ditto.
54653         * WebCore.vcproj/WebCore.vcproj: Ditto.
54654         * rendering/RenderingAllInOne.cpp: Ditto.
54655
54656 2012-10-08  Hans Muller  <hmuller@adobe.com>
54657
54658         [CSS Exclusions] Add support for polygonal shapes
54659         https://bugs.webkit.org/show_bug.cgi?id=96811
54660
54661         Reviewed by Dirk Schulze.
54662
54663         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54664         Supports the public ExclusionShape operations using the algorithm described here:
54665         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54666         Although both the "included" and "excluded" operations are supported, only the former is
54667         used, since only shape-inside is supported at the moment.
54668
54669         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54670
54671         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54672         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54673         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54674         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54675         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54676         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54677
54678         Although the implementation supports complex polygons, the layout code is limited to
54679         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54680         lands.
54681
54682         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54683                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54684                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54685                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54686                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54687
54688         * CMakeLists.txt:
54689         * GNUmakefile.list.am:
54690         * Target.pri:
54691         * WebCore.gypi:
54692         * WebCore.vcproj/WebCore.vcproj:
54693         * WebCore.xcodeproj/project.pbxproj:
54694         * rendering/ExclusionPolygon.cpp: Added.
54695         (WebCore):
54696         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54697         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54698         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54699         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54700         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54701         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54702         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54703         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54704         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54705         * rendering/ExclusionPolygon.h: Added.
54706         (WebCore):
54707         (ExclusionPolygon):
54708         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54709         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54710         (WebCore::ExclusionPolygon::numberOfVertices):
54711         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54712         (ExclusionPolygonEdge):
54713         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54714         (WebCore::ExclusionPolygonEdge::vertex1):
54715         (WebCore::ExclusionPolygonEdge::vertex2):
54716         (WebCore::ExclusionPolygonEdge::minX):
54717         (WebCore::ExclusionPolygonEdge::minY):
54718         (WebCore::ExclusionPolygonEdge::maxX):
54719         (WebCore::ExclusionPolygonEdge::maxY):
54720         * rendering/ExclusionShape.cpp:
54721         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54722         (WebCore):
54723         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54724         * rendering/ExclusionShapeInsideInfo.cpp:
54725         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54726
54727 2012-10-08  Tony Chang  <tony@chromium.org>
54728
54729         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54730         https://bugs.webkit.org/show_bug.cgi?id=98677
54731
54732         Reviewed by Ojan Vafai.
54733
54734         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54735         override the const computeLogicalHeight method rather than the updateLogicalHeight
54736         setter method.
54737
54738         No new tests, there should be no behavior change as this is just a refactor.
54739
54740         * rendering/RenderTextControl.cpp:
54741         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54742         This is a slight correctness fix, although we don't support vertical inputs yet.
54743         * rendering/RenderTextControl.h:
54744         (RenderTextControl):
54745         * rendering/svg/RenderSVGForeignObject.cpp:
54746         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54747         * rendering/svg/RenderSVGForeignObject.h:
54748         (RenderSVGForeignObject):
54749
54750 2012-10-08  Min Qin  <qinmin@chromium.org>
54751
54752         Upstream some tweaks for overlay play button on Android
54753         https://bugs.webkit.org/show_bug.cgi?id=98671
54754
54755         Reviewed by Adam Barth.
54756
54757         This change stops displaying the overlay play button if video height is too small
54758         No test for this. Will rebase layout test expectations for android later.
54759
54760         * css/mediaControlsChromiumAndroid.css:
54761         (video::-webkit-media-controls-overlay-enclosure):
54762
54763 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54764
54765         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54766         https://bugs.webkit.org/show_bug.cgi?id=98574
54767
54768         Reviewed by Dean Jackson.
54769
54770         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54771         cache layer, which has some special considerations. Make these two concepts separate
54772         to get closer to being able to use TileCaches in place of CATiledLayer.
54773
54774         * platform/graphics/GraphicsLayer.h:
54775         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54776         for this class to have.
54777         * platform/graphics/GraphicsLayer.cpp:
54778         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54779         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54780         get the blue color, so moved code into a virtual debugBorderInfo() method.
54781         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54782         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54783         we now just cache this information in the GraphicsLayerCA on creation.
54784         * platform/graphics/ca/GraphicsLayerCA.cpp:
54785         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54786         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54787         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54788         counters in the top-left tile.
54789         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54790         we allow setting of its background color.
54791         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54792         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54793         * platform/graphics/ca/GraphicsLayerCA.h:
54794         (GraphicsLayerCA):
54795         * platform/graphics/ca/PlatformCALayerClient.h:
54796         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54797         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54798         * platform/graphics/ca/mac/TileCache.mm:
54799         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54800         indicate that we're asking about a tile.
54801         * platform/graphics/mac/WebLayer.mm:
54802         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54803         to draw the repaint counter.
54804         (-[WebLayer setNeedsDisplayInRect:]):
54805         * platform/graphics/mac/WebTiledLayer.mm:
54806         (-[WebTiledLayer setNeedsDisplayInRect:]):
54807         * rendering/RenderLayerBacking.h:
54808         (WebCore::RenderLayerBacking::usingTileCache):
54809         (RenderLayerBacking):
54810         * rendering/RenderLayerCompositor.cpp:
54811         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54812         whether it's for the tile cache, rather than going to the GraphicsLayer.
54813         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54814         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54815
54816 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54817
54818         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54819         https://bugs.webkit.org/show_bug.cgi?id=98582
54820
54821         Reviewed by Eric Seidel.
54822
54823         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54824         ImageBufferQt converts from or to a premultiplied color using its own code. When
54825         we convert twice from an unmultiplied color to a premultiplied color and then to
54826         an unmultiplied color using this code, the calculated result are pretty
54827         different against the input color. It is why Gtk passes this test although Qt
54828         fails. Gtk port uses them in Color.h.
54829
54830         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54831
54832         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54833
54834         * platform/graphics/qt/ImageBufferQt.cpp:
54835         (WebCore::getImageData):
54836         (WebCore::convertBGRAToRGBA):
54837         (WebCore::ImageBuffer::putByteArray):
54838
54839 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54840
54841         Remove "orphaned units" quirk
54842         https://bugs.webkit.org/show_bug.cgi?id=98553
54843
54844         Reviewed by Eric Seidel.
54845
54846         This patch removes our "orphaned units" quirk.
54847         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54848         But FF and Opera don't have it and aren't aware of bugs for it,
54849         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54850
54851         No new tests, because I'm killing a quirk.
54852
54853         * css/CSSParser.cpp:
54854         (WebCore::CSSParser::parseValue):
54855         * css/CSSParser.h:
54856         (CSSParser):
54857
54858 2012-10-08  Robert Hogan  <robert@webkit.org>
54859
54860         Border, margin and padding of an inline's inline ancestors counted twice
54861         https://bugs.webkit.org/show_bug.cgi?id=63074
54862
54863         Reviewed by David Hyatt.
54864
54865         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54866         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54867         when adding the width of the <img> object to the line, and a second time when adding
54868         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54869         exceeded the line's maximum length and inserted a bogus line break.
54870
54871         This all happened because the helper function that is used to add in the border etc.
54872         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54873         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54874
54875         Test: fast/inline/bpm-inline-ancestors.html
54876
54877         * rendering/RenderBlockLineLayout.cpp:
54878         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54879         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54880         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54881         crawl up the ancestors accumulating border, padding, and margin.
54882         (WebCore):
54883         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54884         this ensures the border, padding and margin of ancestors is not counted twice. 
54885
54886 2012-10-08  Mike West  <mkwst@chromium.org>
54887
54888         Null-check for DOMWindow before feeding it to FeatureObserver.
54889         https://bugs.webkit.org/show_bug.cgi?id=98624
54890
54891         Reviewed by Adam Barth.
54892
54893         We shouldn't call out to FeatureObserver in
54894         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54895         have a DOMWindow.
54896
54897         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54898
54899         * page/ContentSecurityPolicy.cpp:
54900         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54901             Null check 'document->domWindow' before passing it on.
54902         * page/FeatureObserver.cpp:
54903         (WebCore::FeatureObserver::observe):
54904             ASSERT 'domWindow'.
54905
54906 2012-10-08  Nate Chapin  <japhet@chromium.org>
54907
54908         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54909         https://bugs.webkit.org/show_bug.cgi?id=49072
54910
54911         Reviewed by Eric Seidel.
54912
54913         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54914         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54915         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
54916         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54917         us to behave like Firefox, which is the most sane of the current behaviors.
54918
54919         Test: http/tests/multipart/multipart-html.php
54920
54921         * loader/DocumentLoader.cpp:
54922         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54923         (WebCore::DocumentLoader::receivedData):
54924         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54925             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54926             the if (doesProgressiveLoad(newMIMEType)) {} block.
54927         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54928         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54929             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54930         * loader/DocumentLoader.h:
54931         * loader/FrameLoader.cpp:
54932         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54933         * loader/MainResourceLoader.cpp:
54934         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54935
54936 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54937
54938         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54939         https://bugs.webkit.org/show_bug.cgi?id=97548
54940
54941         Reviewed by Jocelyn Turcotte.
54942
54943         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54944
54945         Covered by existing tests.
54946
54947         * bridge/qt/qt_pixmapruntime.cpp:
54948         (JSC::Bindings::assignToHTMLImageElement):
54949         (JSC::Bindings::QtPixmapRuntime::toQt):
54950         * platform/DragImage.h:
54951         (WebCore):
54952         * platform/graphics/GraphicsContext.h:
54953         (GraphicsContext):
54954         * platform/graphics/Image.h:
54955         (Image):
54956         * platform/graphics/NativeImagePtr.h:
54957         (WebCore):
54958         * platform/graphics/gstreamer/ImageGStreamer.h:
54959         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54960         (ImageGStreamer::ImageGStreamer):
54961         * platform/graphics/qt/GraphicsContext3DQt.cpp:
54962         (WebCore::GraphicsContext3D::getImageData):
54963         * platform/graphics/qt/GraphicsContextQt.cpp:
54964         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
54965         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
54966         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
54967         * platform/graphics/qt/ImageBufferDataQt.h:
54968         (ImageBufferData):
54969         * platform/graphics/qt/ImageBufferQt.cpp:
54970         (WebCore::ImageBufferData::ImageBufferData):
54971         (WebCore):
54972         (WebCore::ImageBufferData::toQImage):
54973         (WebCore::ImageBuffer::copyImage):
54974         (WebCore::ImageBuffer::clip):
54975         (WebCore::ImageBuffer::platformTransformColorSpace):
54976         (WebCore::getImageData):
54977         (WebCore::ImageBuffer::putByteArray):
54978         (WebCore::encodeImage):
54979         (WebCore::ImageBuffer::toDataURL):
54980         * platform/graphics/qt/ImageDecoderQt.cpp:
54981         (WebCore::ImageFrame::asNewNativeImage):
54982         * platform/graphics/qt/ImageQt.cpp:
54983         (graphics):
54984         (loadResourcePixmap):
54985         (WebCore::Image::loadPlatformResource):
54986         (WebCore::Image::setPlatformResource):
54987         (WebCore::Image::drawPattern):
54988         (WebCore::BitmapImage::BitmapImage):
54989         (WebCore::BitmapImage::draw):
54990         (WebCore::BitmapImage::checkForSolidColor):
54991         (WebCore::BitmapImage::create):
54992         * platform/graphics/qt/PatternQt.cpp:
54993         (WebCore::Pattern::createPlatformPattern):
54994         * platform/graphics/qt/StillImageQt.cpp:
54995         (WebCore::StillImage::StillImage):
54996         (WebCore::StillImage::~StillImage):
54997         (WebCore::StillImage::currentFrameHasAlpha):
54998         (WebCore::StillImage::size):
54999         (WebCore::StillImage::nativeImageForCurrentFrame):
55000         (WebCore::StillImage::draw):
55001         * platform/graphics/qt/StillImageQt.h:
55002         (WebCore::StillImage::create):
55003         (WebCore::StillImage::createForRendering):
55004         (StillImage):
55005         * platform/graphics/qt/TransparencyLayer.h:
55006         (WebCore::TransparencyLayer::TransparencyLayer):
55007         (TransparencyLayer):
55008         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
55009         (WebCore::GraphicsSurface::createReadOnlyImage):
55010         * platform/graphics/texmap/TextureMapperGL.cpp:
55011         (WebCore::BitmapTextureGL::updateContents):
55012         * platform/qt/ClipboardQt.cpp:
55013         (WebCore::ClipboardQt::createDragImage):
55014         (WebCore::ClipboardQt::declareAndWriteDragImage):
55015         * platform/qt/CursorQt.cpp:
55016         (WebCore::createCustomCursor):
55017         * platform/qt/DragImageQt.cpp:
55018         (WebCore::createDragImageFromImage):
55019         * platform/qt/PasteboardQt.cpp:
55020         (WebCore::Pasteboard::writeImage):
55021
55022 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
55023
55024         Unreviewed. Fix make distcheck.
55025
55026         * GNUmakefile.list.am: Add missing header file to compilation.
55027
55028 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
55029
55030         Unreviewed, rolling out r130619.
55031         http://trac.webkit.org/changeset/130619
55032         https://bugs.webkit.org/show_bug.cgi?id=98634
55033
55034         Causes many crashes on the EFL bots. (Requested by rakuco on
55035         #webkit).
55036
55037         * platform/RunLoop.h:
55038         (RunLoop):
55039         * platform/efl/RunLoopEfl.cpp:
55040         (WebCore::RunLoop::RunLoop):
55041         (WebCore::RunLoop::wakeUpEvent):
55042         (WebCore::RunLoop::wakeUp):
55043
55044 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
55045
55046         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
55047         https://bugs.webkit.org/show_bug.cgi?id=98505
55048
55049         Reviewed by Kenneth Rohde Christiansen.
55050
55051         Instead of ecore_pipe_write(),
55052         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
55053
55054         According to the EFL API document, this function is designed to dispatch
55055         a function on ecore main loop by avoiding dead lock or race condition. 
55056         With this function, webkit doesn't need to maintain ecore pipe also.
55057
55058         No new tests. The function to wakeup main loop is changed.
55059
55060         * platform/RunLoop.h:
55061         (RunLoop):
55062         * platform/efl/RunLoopEfl.cpp:
55063         (WebCore::RunLoop::RunLoop):
55064         (WebCore::RunLoop::wakeUpEvent):
55065         (WebCore::RunLoop::wakeUp):
55066
55067 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
55068
55069         :first-line pseudo selector ignoring words created from :before
55070         https://bugs.webkit.org/show_bug.cgi?id=80794
55071
55072         Reviewed by Daniel Bates.
55073
55074         The :first-line pseudo-element style is not applied for content
55075         which is generated from the :before/:after pseudo-elements.
55076
55077         Test: fast/css/first-line-style-for-before-after-content.html
55078
55079         * rendering/RenderObject.cpp:
55080         (WebCore::firstLineStyleForCachedUncachedType):
55081         Added a new static helper function incorporating the common
55082         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
55083         functions. It also modifies the functionality to handle the
55084         scenario when :first-line style needs to be applied on content
55085         generated from :before/:after.
55086
55087         While getting the :first-line style we should also consider the case
55088         when the content is generated from a :before/:after pseudo-element in
55089         which case the RenderInline's parent should be considered for
55090         obtaining the first-line style.
55091
55092         (WebCore):
55093         (WebCore::RenderObject::uncachedFirstLineStyle):
55094         (WebCore::RenderObject::firstLineStyleSlowCase):
55095         Moved the duplicate code between the two functions to the common
55096         helper function firstLineStyleForCachedUncachedType().
55097
55098 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55099
55100         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55101         https://bugs.webkit.org/show_bug.cgi?id=93473
55102
55103         Reviewed by Yury Semikhatsky.
55104
55105         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55106         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55107
55108         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55109
55110         * bindings/js/ScriptDebugServer.cpp:
55111         (WebCore::ScriptDebugServer::ScriptDebugServer):
55112         (WebCore::ScriptDebugServer::hasBreakpoint):
55113         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55114         (WebCore::ScriptDebugServer::pauseIfNeeded):
55115         * bindings/js/ScriptDebugServer.h:
55116         (ScriptDebugServer):
55117
55118 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55119
55120         [Soup] Clean up ResourceError creation
55121         https://bugs.webkit.org/show_bug.cgi?id=98521
55122
55123         Reviewed by Carlos Garcia Campos.
55124
55125         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55126         part of a process to make the libsoup networking backend more hackable.
55127
55128         No new tests. This shouldn't change functionality.
55129
55130         * GNUmakefile.list.am: Added new file.
55131         * PlatformEfl.cmake: Added new file.
55132         * platform/network/soup/ResourceError.h:
55133         (ResourceError): Added new factories.
55134         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55135         (WebCore::failingURI): Added this helper.
55136         (WebCore::ResourceError::httpError): New factory.
55137         (WebCore::ResourceError::genericIOError): Ditto.
55138         (WebCore::ResourceError::tlsError): Ditto.
55139         (WebCore::ResourceError::timeoutError): Ditto.
55140         * platform/network/soup/ResourceHandleSoup.cpp:
55141         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55142         some of the logic from sendRequestCallback.
55143         (WebCore::sendRequestCallback): Use the new helper.
55144         (WebCore::requestTimeoutCallback): Use the new factory.
55145
55146 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55147
55148         Rename first/second to key/value in HashMap iterators
55149         https://bugs.webkit.org/show_bug.cgi?id=82784
55150
55151         Reviewed by Eric Seidel.
55152
55153         * Modules/geolocation/Geolocation.cpp:
55154         (WebCore::Geolocation::Watchers::find):
55155         (WebCore::Geolocation::Watchers::remove):
55156         * Modules/indexeddb/IDBDatabase.cpp:
55157         (WebCore::IDBDatabase::objectStoreNames):
55158         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55159         (WebCore::IDBDatabaseBackendImpl::metadata):
55160         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55161         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55162         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55163         (WebCore::IDBFactoryBackendImpl::open):
55164         * Modules/indexeddb/IDBObjectStore.cpp:
55165         (WebCore::IDBObjectStore::indexNames):
55166         (WebCore::IDBObjectStore::put):
55167         (WebCore::IDBObjectStore::index):
55168         (WebCore::IDBObjectStore::deleteIndex):
55169         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55170         (WebCore::IDBObjectStoreBackendImpl::metadata):
55171         (WebCore::makeIndexWriters):
55172         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55173         * Modules/indexeddb/IDBTransaction.cpp:
55174         (WebCore::IDBTransaction::objectStore):
55175         (WebCore::IDBTransaction::objectStoreDeleted):
55176         (WebCore::IDBTransaction::onAbort):
55177         (WebCore::IDBTransaction::dispatchEvent):
55178         * Modules/mediastream/MediaConstraintsImpl.cpp:
55179         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55180         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55181         * Modules/webdatabase/AbstractDatabase.cpp:
55182         (WebCore::AbstractDatabase::performOpenAndVerify):
55183         * Modules/webdatabase/DatabaseTracker.cpp:
55184         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55185         * Modules/webdatabase/OriginUsageRecord.cpp:
55186         (WebCore::OriginUsageRecord::diskUsage):
55187         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55188         (WebCore::SQLTransactionCoordinator::acquireLock):
55189         (WebCore::SQLTransactionCoordinator::releaseLock):
55190         (WebCore::SQLTransactionCoordinator::shutdown):
55191         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55192         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55193         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55194         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55195         (WebCore::QuotaTracker::updateDatabaseSize):
55196         * Modules/websockets/WebSocketDeflateFramer.cpp:
55197         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55198         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55199         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55200         * accessibility/AXObjectCache.cpp:
55201         (WebCore::AXObjectCache::~AXObjectCache):
55202         * bindings/gobject/DOMObjectCache.cpp:
55203         (WebKit::DOMObjectCache::clearByFrame):
55204         * bindings/js/DOMObjectHashTableMap.h:
55205         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55206         (WebCore::DOMObjectHashTableMap::get):
55207         * bindings/js/JSDOMBinding.cpp:
55208         (WebCore::cacheDOMStructure):
55209         * bindings/js/JSDOMGlobalObject.cpp:
55210         (WebCore::JSDOMGlobalObject::visitChildren):
55211         * bindings/js/JSDOMGlobalObject.h:
55212         (WebCore::getDOMConstructor):
55213         * bindings/js/PageScriptDebugServer.cpp:
55214         (WebCore::PageScriptDebugServer::addListener):
55215         (WebCore::PageScriptDebugServer::removeListener):
55216         * bindings/js/ScriptCachedFrameData.cpp:
55217         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55218         (WebCore::ScriptCachedFrameData::restore):
55219         * bindings/js/ScriptController.cpp:
55220         (WebCore::ScriptController::~ScriptController):
55221         (WebCore::ScriptController::clearWindowShell):
55222         (WebCore::ScriptController::attachDebugger):
55223         (WebCore::ScriptController::updateDocument):
55224         (WebCore::ScriptController::createRootObject):
55225         (WebCore::ScriptController::collectIsolatedContexts):
55226         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55227         (WebCore::ScriptController::clearScriptObjects):
55228         * bindings/js/ScriptController.h:
55229         (WebCore::ScriptController::windowShell):
55230         (WebCore::ScriptController::existingWindowShell):
55231         * bindings/js/ScriptDebugServer.cpp:
55232         (WebCore::ScriptDebugServer::setBreakpoint):
55233         (WebCore::ScriptDebugServer::removeBreakpoint):
55234         (WebCore::ScriptDebugServer::hasBreakpoint):
55235         * bindings/js/SerializedScriptValue.cpp:
55236         (WebCore::CloneSerializer::checkForDuplicate):
55237         (WebCore::CloneSerializer::dumpIfTerminal):
55238         (WebCore::CloneSerializer::write):
55239         * bindings/scripts/CodeGeneratorV8.pm:
55240         (GenerateImplementation):
55241         * bindings/scripts/test/V8/V8Float64Array.cpp:
55242         (WebCore::V8Float64Array::GetRawTemplate):
55243         (WebCore::V8Float64Array::GetTemplate):
55244         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55245         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55246         (WebCore::V8TestActiveDOMObject::GetTemplate):
55247         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55248         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55249         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55250         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55251         (WebCore::V8TestEventConstructor::GetRawTemplate):
55252         (WebCore::V8TestEventConstructor::GetTemplate):
55253         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55254         (WebCore::V8TestEventTarget::GetRawTemplate):
55255         (WebCore::V8TestEventTarget::GetTemplate):
55256         * bindings/scripts/test/V8/V8TestException.cpp:
55257         (WebCore::V8TestException::GetRawTemplate):
55258         (WebCore::V8TestException::GetTemplate):
55259         * bindings/scripts/test/V8/V8TestInterface.cpp:
55260         (WebCore::V8TestInterface::GetRawTemplate):
55261         (WebCore::V8TestInterface::GetTemplate):
55262         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55263         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55264         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55265         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55266         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55267         (WebCore::V8TestNamedConstructor::GetTemplate):
55268         * bindings/scripts/test/V8/V8TestNode.cpp:
55269         (WebCore::V8TestNode::GetRawTemplate):
55270         (WebCore::V8TestNode::GetTemplate):
55271         * bindings/scripts/test/V8/V8TestObj.cpp:
55272         (WebCore::V8TestObj::GetRawTemplate):
55273         (WebCore::V8TestObj::GetTemplate):
55274         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55275         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55276         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55277         * bindings/v8/DOMWrapperWorld.cpp:
55278         (WebCore::DOMWrapperWorld::deallocate):
55279         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55280         * bindings/v8/NPV8Object.cpp:
55281         (WebCore::freeV8NPObject):
55282         (WebCore::npCreateV8ScriptObject):
55283         * bindings/v8/ScriptController.cpp:
55284         (WebCore::ScriptController::clearScriptObjects):
55285         (WebCore::ScriptController::resetIsolatedWorlds):
55286         (WebCore::ScriptController::ensureIsolatedWorldContext):
55287         (WebCore::ScriptController::existingWindowShellInternal):
55288         (WebCore::ScriptController::evaluateInIsolatedWorld):
55289         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55290         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55291         (WebCore::ScriptController::collectIsolatedContexts):
55292         * bindings/v8/SerializedScriptValue.cpp:
55293         * bindings/v8/V8DOMMap.h:
55294         (WebCore::WeakReferenceMap::removeIfPresent):
55295         (WebCore::WeakReferenceMap::visit):
55296         * bindings/v8/V8PerContextData.cpp:
55297         (WebCore::V8PerContextData::dispose):
55298         * bindings/v8/npruntime.cpp:
55299         * bridge/IdentifierRep.cpp:
55300         (WebCore::IdentifierRep::get):
55301         * bridge/NP_jsobject.cpp:
55302         (ObjectMap::add):
55303         (ObjectMap::remove):
55304         * bridge/runtime_root.cpp:
55305         (JSC::Bindings::RootObject::invalidate):
55306         * css/CSSCanvasValue.cpp:
55307         (WebCore::CSSCanvasValue::canvasChanged):
55308         (WebCore::CSSCanvasValue::canvasResized):
55309         * css/CSSComputedStyleDeclaration.cpp:
55310         (WebCore::counterToCSSValue):
55311         * css/CSSCrossfadeValue.cpp:
55312         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55313         * css/CSSFontFaceSource.cpp:
55314         (WebCore::CSSFontFaceSource::getFontData):
55315         * css/CSSFontSelector.cpp:
55316         (WebCore::CSSFontSelector::addFontFaceRule):
55317         (WebCore::CSSFontSelector::getFontData):
55318         * css/CSSImageGeneratorValue.cpp:
55319         (WebCore::CSSImageGeneratorValue::addClient):
55320         (WebCore::CSSImageGeneratorValue::removeClient):
55321         (WebCore::CSSImageGeneratorValue::getImage):
55322         * css/CSSSegmentedFontFace.cpp:
55323         (WebCore::CSSSegmentedFontFace::getFontData):
55324         * css/CSSSelector.cpp:
55325         (WebCore::CSSSelector::parsePseudoType):
55326         * css/CSSValuePool.cpp:
55327         (WebCore::CSSValuePool::createColorValue):
55328         (WebCore::CSSValuePool::createFontFamilyValue):
55329         (WebCore::CSSValuePool::createFontFaceValue):
55330         * css/PropertySetCSSStyleDeclaration.cpp:
55331         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55332         * css/RuleSet.cpp:
55333         (WebCore::reportAtomRuleMap):
55334         (WebCore::RuleSet::addToRuleSet):
55335         (WebCore::shrinkMapVectorsToFit):
55336         * css/StyleBuilder.cpp:
55337         (WebCore::ApplyPropertyCounter::applyInheritValue):
55338         (WebCore::ApplyPropertyCounter::applyValue):
55339         * css/StyleResolver.cpp:
55340         (WebCore::StyleResolver::collectFeatures):
55341         (WebCore::StyleResolver::ruleSetForScope):
55342         (WebCore::StyleResolver::appendAuthorStylesheets):
55343         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55344         (WebCore::StyleResolver::collectMatchingRulesForList):
55345         * css/StyleSheetContents.cpp:
55346         (WebCore::StyleSheetContents::parserAddNamespace):
55347         (WebCore::StyleSheetContents::determineNamespace):
55348         * dom/CheckedRadioButtons.cpp:
55349         (WebCore::CheckedRadioButtons::addButton):
55350         (WebCore::CheckedRadioButtons::removeButton):
55351         * dom/ChildListMutationScope.cpp:
55352         (WebCore::ChildListMutationAccumulator::getOrCreate):
55353         * dom/Document.cpp:
55354         (WebCore::Document::windowNamedItems):
55355         (WebCore::Document::documentNamedItems):
55356         (WebCore::Document::getCSSCanvasElement):
55357         (WebCore::Document::cachedImmutableAttributeData):
55358         (WebCore::Document::getCachedLocalizer):
55359         * dom/DocumentMarkerController.cpp:
55360         (WebCore::DocumentMarkerController::markerContainingPoint):
55361         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55362         (WebCore::DocumentMarkerController::removeMarkers):
55363         (WebCore::DocumentMarkerController::repaintMarkers):
55364         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55365         (WebCore::DocumentMarkerController::showMarkers):
55366         * dom/DocumentOrderedMap.cpp:
55367         (WebCore::DocumentOrderedMap::remove):
55368         * dom/DocumentStyleSheetCollection.cpp:
55369         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55370         * dom/ElementAttributeData.cpp:
55371         (WebCore::ensureAttrListForElement):
55372         * dom/EventDispatcher.cpp:
55373         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55374         * dom/IdTargetObserverRegistry.cpp:
55375         (WebCore::IdTargetObserverRegistry::addObserver):
55376         (WebCore::IdTargetObserverRegistry::removeObserver):
55377         * dom/MutationObserverInterestGroup.cpp:
55378         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55379         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55380         * dom/Node.cpp:
55381         (WebCore::Node::dumpStatistics):
55382         (WebCore::Node::clearRareData):
55383         (WebCore::NodeListsNodeData::invalidateCaches):
55384         (WebCore::collectMatchingObserversForMutation):
55385         * dom/NodeRareData.h:
55386         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55387         (WebCore::NodeListsNodeData::addCacheWithName):
55388         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55389         (WebCore::NodeListsNodeData::adoptTreeScope):
55390         * dom/ProcessingInstruction.cpp:
55391         (WebCore::ProcessingInstruction::checkStyleSheet):
55392         * dom/ScriptExecutionContext.cpp:
55393         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55394         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55395         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55396         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55397         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55398         * dom/SelectorQuery.cpp:
55399         (WebCore::SelectorQueryCache::add):
55400         * dom/SpaceSplitString.cpp:
55401         (WebCore::SpaceSplitStringData::create):
55402         * dom/StyledElement.cpp:
55403         (WebCore::StyledElement::updateAttributeStyle):
55404         * editing/mac/AlternativeTextUIController.mm:
55405         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55406         * html/FormController.cpp:
55407         (WebCore::SavedFormState::serializeTo):
55408         (WebCore::SavedFormState::appendControlState):
55409         (WebCore::SavedFormState::takeControlState):
55410         (WebCore::SavedFormState::getReferencedFilePaths):
55411         (WebCore::FormKeyGenerator::formKey):
55412         (WebCore::FormController::createSavedFormStateMap):
55413         (WebCore::FormController::formElementsState):
55414         (WebCore::FormController::takeStateForFormElement):
55415         (WebCore::FormController::getReferencedFilePaths):
55416         * html/HTMLCollection.cpp:
55417         (WebCore::HTMLCollectionCacheBase::append):
55418         * html/canvas/WebGLFramebuffer.cpp:
55419         (WebCore::WebGLFramebuffer::getAttachment):
55420         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55421         (WebCore::WebGLFramebuffer::checkStatus):
55422         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55423         (WebCore::WebGLFramebuffer::initializeAttachments):
55424         * inspector/CodeGeneratorInspector.py:
55425         * inspector/DOMPatchSupport.cpp:
55426         (WebCore::DOMPatchSupport::diff):
55427         (WebCore::DOMPatchSupport::innerPatchChildren):
55428         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55429         * inspector/InjectedScriptManager.cpp:
55430         (WebCore::InjectedScriptManager::injectedScriptForId):
55431         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55432         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55433         (WebCore::InjectedScriptManager::releaseObjectGroup):
55434         (WebCore::InjectedScriptManager::injectedScriptFor):
55435         * inspector/InspectorCSSAgent.cpp:
55436         (WebCore::SelectorProfile::commitSelector):
55437         (WebCore::SelectorProfile::commitSelectorTime):
55438         (WebCore::SelectorProfile::toInspectorObject):
55439         (WebCore::UpdateRegionLayoutTask::onTimer):
55440         (WebCore::InspectorCSSAgent::forcePseudoState):
55441         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55442         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55443         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55444         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55445         (WebCore::InspectorCSSAgent::resetPseudoStates):
55446         * inspector/InspectorConsoleAgent.cpp:
55447         (WebCore::InspectorConsoleAgent::stopTiming):
55448         (WebCore::InspectorConsoleAgent::count):
55449         * inspector/InspectorDOMAgent.cpp:
55450         (WebCore::InspectorDOMAgent::nodeForId):
55451         (WebCore::InspectorDOMAgent::performSearch):
55452         (WebCore::InspectorDOMAgent::getSearchResults):
55453         * inspector/InspectorDOMDebuggerAgent.cpp:
55454         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55455         * inspector/InspectorDOMStorageAgent.cpp:
55456         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55457         (WebCore::InspectorDOMStorageAgent::enable):
55458         (WebCore::InspectorDOMStorageAgent::storageId):
55459         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55460         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55461         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55462         * inspector/InspectorDatabaseAgent.cpp:
55463         (WebCore::InspectorDatabaseAgent::enable):
55464         (WebCore::InspectorDatabaseAgent::databaseId):
55465         (WebCore::InspectorDatabaseAgent::findByFileName):
55466         (WebCore::InspectorDatabaseAgent::databaseForId):
55467         * inspector/InspectorDebuggerAgent.cpp:
55468         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55469         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55470         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55471         (WebCore::InspectorDebuggerAgent::searchInContent):
55472         (WebCore::InspectorDebuggerAgent::getScriptSource):
55473         (WebCore::InspectorDebuggerAgent::didParseSource):
55474         * inspector/InspectorIndexedDBAgent.cpp:
55475         (WebCore):
55476         * inspector/InspectorMemoryAgent.cpp:
55477         (WebCore):
55478         * inspector/InspectorPageAgent.cpp:
55479         (WebCore::cachedResourcesForFrame):
55480         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55481         (WebCore::InspectorPageAgent::frameDetached):
55482         * inspector/InspectorProfilerAgent.cpp:
55483         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55484         (WebCore):
55485         (WebCore::InspectorProfilerAgent::getProfile):
55486         * inspector/InspectorResourceAgent.cpp:
55487         (WebCore::buildObjectForHeaders):
55488         (WebCore::InspectorResourceAgent::willSendRequest):
55489         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55490         (WebCore::InspectorResourceAgent::willLoadXHR):
55491         (WebCore::InspectorResourceAgent::replayXHR):
55492         * inspector/InspectorState.cpp:
55493         (WebCore::InspectorState::getBoolean):
55494         (WebCore::InspectorState::getString):
55495         (WebCore::InspectorState::getLong):
55496         (WebCore::InspectorState::getDouble):
55497         (WebCore::InspectorState::getObject):
55498         * inspector/InspectorStyleSheet.cpp:
55499         (WebCore::InspectorStyle::styleWithProperties):
55500         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55501         * inspector/InspectorValues.cpp:
55502         (WebCore::InspectorObjectBase::get):
55503         (WebCore::InspectorObjectBase::writeJSON):
55504         * inspector/InspectorWorkerAgent.cpp:
55505         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55506         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55507         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55508         * inspector/MemoryInstrumentationImpl.cpp:
55509         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55510         * inspector/MemoryInstrumentationImpl.h:
55511         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55512         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55513         * inspector/NetworkResourcesData.cpp:
55514         (WebCore::NetworkResourcesData::setXHRReplayData):
55515         (WebCore::NetworkResourcesData::removeCachedResource):
55516         (WebCore::NetworkResourcesData::clear):
55517         * loader/CrossOriginAccessControl.cpp:
55518         (WebCore::isSimpleCrossOriginAccessRequest):
55519         (WebCore::createAccessControlPreflightRequest):
55520         * loader/CrossOriginPreflightResultCache.cpp:
55521         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55522         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55523         * loader/DocumentLoader.cpp:
55524         (WebCore::DocumentLoader::getSubresources):
55525         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55526         * loader/MainResourceLoader.cpp:
55527         (WebCore::MainResourceLoader::didReceiveResponse):
55528         * loader/ResourceLoadScheduler.cpp:
55529         (WebCore::ResourceLoadScheduler::servePendingRequests):
55530         * loader/appcache/ApplicationCache.cpp:
55531         (WebCore::ApplicationCache::removeResource):
55532         (WebCore::ApplicationCache::clearStorageID):
55533         (WebCore::ApplicationCache::dump):
55534         * loader/appcache/ApplicationCacheGroup.cpp:
55535         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55536         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55537         (WebCore::ApplicationCacheGroup::addEntry):
55538         * loader/appcache/ApplicationCacheHost.cpp:
55539         (WebCore::ApplicationCacheHost::fillResourceList):
55540         * loader/appcache/ApplicationCacheResource.cpp:
55541         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55542         * loader/appcache/ApplicationCacheStorage.cpp:
55543         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55544         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55545         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55546         (WebCore::ApplicationCacheStorage::store):
55547         (WebCore::ApplicationCacheStorage::empty):
55548         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55549         * loader/archive/ArchiveFactory.cpp:
55550         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55551         * loader/cache/CachedRawResource.cpp:
55552         (WebCore::CachedRawResource::canReuse):
55553         * loader/cache/CachedResource.cpp:
55554         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55555         (WebCore::CachedResource::updateResponseAfterRevalidation):
55556         * loader/cache/CachedResourceClientWalker.h:
55557         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55558         * loader/cache/CachedResourceLoader.cpp:
55559         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55560         (WebCore::CachedResourceLoader::requestResource):
55561         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55562         (WebCore::CachedResourceLoader::removeCachedResource):
55563         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55564         * loader/cache/MemoryCache.cpp:
55565         (WebCore::MemoryCache::removeResourcesWithOrigin):
55566         (WebCore::MemoryCache::getOriginsWithCache):
55567         (WebCore::MemoryCache::getStatistics):
55568         (WebCore::MemoryCache::setDisabled):
55569         * loader/icon/IconDatabase.cpp:
55570         (WebCore::IconDatabase::removeAllIcons):
55571         (WebCore::IconDatabase::iconRecordCountWithData):
55572         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55573         * page/DOMWindow.cpp:
55574         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55575         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55576         * page/EventHandler.cpp:
55577         (WebCore::EventHandler::handleTouchEvent):
55578         * page/Frame.cpp:
55579         (WebCore::Frame::injectUserScripts):
55580         * page/PageGroup.cpp:
55581         (WebCore::PageGroup::pageGroup):
55582         (WebCore::PageGroup::closeLocalStorage):
55583         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55584         (WebCore::PageGroup::clearLocalStorageForOrigin):
55585         (WebCore::PageGroup::syncLocalStorage):
55586         (WebCore::PageGroup::addUserScriptToWorld):
55587         (WebCore::PageGroup::addUserStyleSheetToWorld):
55588         (WebCore::PageGroup::removeUserScriptFromWorld):
55589         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55590         * page/PageSerializer.cpp:
55591         (WebCore::PageSerializer::urlForBlankFrame):
55592         * page/SecurityPolicy.cpp:
55593         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55594         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55595         * page/Settings.cpp:
55596         (WebCore::setGenericFontFamilyMap):
55597         (WebCore::getGenericFontFamilyForScript):
55598         * page/SpeechInput.cpp:
55599         (WebCore::SpeechInput::registerListener):
55600         * page/TouchDisambiguation.cpp:
55601         (WebCore::findGoodTouchTargets):
55602         * page/WindowFeatures.cpp:
55603         (WebCore::WindowFeatures::boolFeature):
55604         (WebCore::WindowFeatures::floatFeature):
55605         * page/animation/AnimationController.cpp:
55606         (WebCore::AnimationControllerPrivate::updateAnimations):
55607         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55608         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55609         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55610         * page/animation/CompositeAnimation.cpp:
55611         (WebCore::CompositeAnimation::clearRenderer):
55612         (WebCore::CompositeAnimation::updateTransitions):
55613         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55614         (WebCore::CompositeAnimation::animate):
55615         (WebCore::CompositeAnimation::getAnimatedStyle):
55616         (WebCore::CompositeAnimation::setAnimating):
55617         (WebCore::CompositeAnimation::timeToNextService):
55618         (WebCore::CompositeAnimation::getAnimationForProperty):
55619         (WebCore::CompositeAnimation::suspendAnimations):
55620         (WebCore::CompositeAnimation::resumeAnimations):
55621         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55622         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55623         (WebCore::CompositeAnimation::isAnimatingProperty):
55624         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55625         * platform/Language.cpp:
55626         (WebCore::languageDidChange):
55627         * platform/MIMETypeRegistry.cpp:
55628         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55629         * platform/audio/HRTFElevation.cpp:
55630         (WebCore::getConcatenatedImpulseResponsesForSubject):
55631         * platform/blackberry/CookieManager.cpp:
55632         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55633         (WebCore::CookieManager::removeAllCookies):
55634         * platform/blackberry/CookieMap.cpp:
55635         (WebCore::CookieMap::removeOldestCookie):
55636         (WebCore::CookieMap::getAllChildCookies):
55637         * platform/cf/BinaryPropertyList.cpp:
55638         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55639         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55640         (WebKit::addHeader):
55641         * platform/chromium/support/WebURLRequest.cpp:
55642         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55643         * platform/chromium/support/WebURLResponse.cpp:
55644         (WebKit::WebURLResponse::addHTTPHeaderField):
55645         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55646         * platform/graphics/DisplayRefreshMonitor.cpp:
55647         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55648         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55649         * platform/graphics/FontCache.cpp:
55650         (WebCore::FontCache::getCachedFontPlatformData):
55651         (WebCore::FontCache::getVerticalData):
55652         (WebCore::FontCache::getCachedFontData):
55653         (WebCore::FontCache::releaseFontData):
55654         (WebCore::FontCache::purgeInactiveFontData):
55655         * platform/graphics/GlyphPageTreeNode.cpp:
55656         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55657         (WebCore::GlyphPageTreeNode::pageCount):
55658         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55659         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55660         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55661         (WebCore::GlyphPageTreeNode::pruneFontData):
55662         (WebCore::GlyphPageTreeNode::showSubtree):
55663         (showGlyphPageTrees):
55664         * platform/graphics/TiledBackingStore.cpp:
55665         (WebCore::TiledBackingStore::updateTileBuffers):
55666         (WebCore::TiledBackingStore::resizeEdgeTiles):
55667         (WebCore::TiledBackingStore::setKeepRect):
55668         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55669         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55670         * platform/graphics/blackberry/LayerTiler.cpp:
55671         (WebCore::LayerTiler::layerVisibilityChanged):
55672         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55673         (WebCore::LayerTiler::addTileJob):
55674         (WebCore::LayerTiler::deleteTextures):
55675         (WebCore::LayerTiler::pruneTextures):
55676         (WebCore::LayerTiler::bindContentsTexture):
55677         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55678         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55679         (WebCore::TextureCacheCompositingThread::textureForColor):
55680         * platform/graphics/ca/GraphicsLayerCA.cpp:
55681         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55682         (WebCore::GraphicsLayerCA::pauseAnimation):
55683         (WebCore::GraphicsLayerCA::layerDidDisplay):
55684         (WebCore::GraphicsLayerCA::updateGeometry):
55685         (WebCore::GraphicsLayerCA::updateTransform):
55686         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55687         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55688         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55689         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55690         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55691         (WebCore::GraphicsLayerCA::updateFilters):
55692         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55693         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55694         (WebCore::GraphicsLayerCA::updateContentsImage):
55695         (WebCore::GraphicsLayerCA::updateContentsRect):
55696         (WebCore::GraphicsLayerCA::updateMaskLayer):
55697         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55698         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55699         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55700         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55701         (WebCore::GraphicsLayerCA::suspendAnimations):
55702         (WebCore::GraphicsLayerCA::resumeAnimations):
55703         (WebCore::GraphicsLayerCA::findOrMakeClone):
55704         (WebCore::GraphicsLayerCA::setOpacityInternal):
55705         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55706         * platform/graphics/ca/mac/TileCache.mm:
55707         (WebCore::TileCache::~TileCache):
55708         (WebCore::TileCache::setNeedsDisplay):
55709         (WebCore::TileCache::setScale):
55710         (WebCore::TileCache::setAcceleratesDrawing):
55711         (WebCore::TileCache::setTileDebugBorderWidth):
55712         (WebCore::TileCache::setTileDebugBorderColor):
55713         (WebCore::TileCache::revalidateTiles):
55714         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55715         (PlatformCALayer::animationStarted):
55716         (resubmitAllAnimations):
55717         (PlatformCALayer::animationForKey):
55718         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55719         (WebCore::LookupAltName):
55720         (WebCore::fontContainsCharacter):
55721         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55722         (WebCore::getDerivedFontData):
55723         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55724         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55725         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55726         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55727         * platform/graphics/filters/CustomFilterProgram.cpp:
55728         (WebCore::CustomFilterProgram::notifyClients):
55729         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55730         (WebCore::getCachedHarfbuzzFace):
55731         (WebCore::releaseCachedHarfbuzzFace):
55732         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55733         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55734         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55735         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55736         (WebCore::SimpleFontData::getCFStringAttributes):
55737         * platform/graphics/mac/SimpleFontDataMac.mm:
55738         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55739         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55740         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55741         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55742         (WebCore::GraphicsContext3D::compileShader):
55743         (WebCore::GraphicsContext3D::mappedSymbolName):
55744         (WebCore::GraphicsContext3D::getShaderiv):
55745         (WebCore::GraphicsContext3D::getShaderInfoLog):
55746         (WebCore::GraphicsContext3D::getShaderSource):
55747         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55748         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55749         (WebCore::EGLDisplayOpenVG::destroySurface):
55750         (WebCore::EGLDisplayOpenVG::contextForSurface):
55751         * platform/graphics/texmap/TextureMapperGL.cpp:
55752         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55753         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55754         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55755         (WebCore::TextureMapperShaderManager::getShaderProgram):
55756         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55757         * platform/graphics/wince/FontPlatformData.cpp:
55758         (WebCore::FixedSizeFontData::create):
55759         * platform/gtk/DataObjectGtk.cpp:
55760         (WebCore::DataObjectGtk::forClipboard):
55761         * platform/gtk/GtkDragAndDropHelper.cpp:
55762         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55763         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55764         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55765         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55766         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55767         * platform/gtk/RedirectedXCompositeWindow.cpp:
55768         (WebCore::filterXDamageEvent):
55769         * platform/gtk/RenderThemeGtk3.cpp:
55770         (WebCore::gtkStyleChangedCallback):
55771         (WebCore::getStyleContext):
55772         * platform/mac/ScrollbarThemeMac.mm:
55773         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55774         * platform/network/CredentialStorage.cpp:
55775         (WebCore::CredentialStorage::set):
55776         (WebCore::CredentialStorage::get):
55777         * platform/network/HTTPHeaderMap.cpp:
55778         (WebCore::HTTPHeaderMap::copyData):
55779         (WebCore::HTTPHeaderMap::get):
55780         * platform/network/MIMEHeader.cpp:
55781         (WebCore::MIMEHeader::parseHeader):
55782         * platform/network/ResourceHandle.cpp:
55783         (WebCore::ResourceHandle::create):
55784         * platform/network/ResourceRequestBase.cpp:
55785         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55786         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55787         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55788         (WebCore::ResourceRequest::targetTypeFromMimeType):
55789         (WebCore::ResourceRequest::initializePlatformRequest):
55790         * platform/network/cf/ResourceHandleCFNet.cpp:
55791         (WebCore::makeFinalRequest):
55792         * platform/network/cf/ResourceRequestCFNet.cpp:
55793         (WebCore::setHeaderFields):
55794         * platform/network/curl/ResourceHandleManager.cpp:
55795         (WebCore::ResourceHandleManager::initializeHandle):
55796         * platform/network/mac/ResourceRequestMac.mm:
55797         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55798         * platform/network/qt/ResourceRequestQt.cpp:
55799         (WebCore::ResourceRequest::toNetworkRequest):
55800         * platform/network/soup/ResourceHandleSoup.cpp:
55801         (WebCore::sendRequestCallback):
55802         (WebCore::ResourceHandle::setClientCertificate):
55803         * platform/network/soup/ResourceRequestSoup.cpp:
55804         (WebCore::ResourceRequest::updateSoupMessage):
55805         (WebCore::ResourceRequest::toSoupMessage):
55806         * platform/network/soup/ResourceResponseSoup.cpp:
55807         (WebCore::ResourceResponse::toSoupMessage):
55808         * platform/network/win/ResourceHandleWin.cpp:
55809         (WebCore::ResourceHandle::start):
55810         * platform/qt/RunLoopQt.cpp:
55811         (WebCore::RunLoop::TimerBase::timerFired):
55812         * platform/text/LocaleToScriptMappingDefault.cpp:
55813         (WebCore::scriptNameToCode):
55814         (WebCore::localeToScriptCodeForFontSelection):
55815         * platform/text/TextEncodingRegistry.cpp:
55816         (WebCore::pruneBlacklistedCodecs):
55817         (WebCore::dumpTextEncodingNameMap):
55818         * platform/text/transcoder/FontTranscoder.cpp:
55819         (WebCore::FontTranscoder::converterType):
55820         * platform/text/win/TextCodecWin.cpp:
55821         (WebCore::LanguageManager::LanguageManager):
55822         (WebCore::getCodePage):
55823         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55824         (WebCore::TextCodecWin::registerExtendedCodecs):
55825         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55826         * platform/win/ClipboardUtilitiesWin.cpp:
55827         (WebCore::getDataMapItem):
55828         (WebCore::getClipboardData):
55829         (WebCore::setClipboardData):
55830         * platform/win/ClipboardWin.cpp:
55831         (WebCore::ClipboardWin::types):
55832         * platform/win/FileSystemWin.cpp:
55833         (WebCore::cachedStorageDirectory):
55834         * platform/win/RunLoopWin.cpp:
55835         (WebCore::RunLoop::TimerBase::timerFired):
55836         * platform/win/WCDataObject.cpp:
55837         (WebCore::WCDataObject::createInstance):
55838         * platform/wince/MIMETypeRegistryWinCE.cpp:
55839         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55840         * platform/wx/ContextMenuWx.cpp:
55841         (WebCore::ContextMenu::appendItem):
55842         * plugins/PluginDatabase.cpp:
55843         (WebCore::PluginDatabase::refresh):
55844         (WebCore::PluginDatabase::MIMETypeForExtension):
55845         (WebCore::PluginDatabase::remove):
55846         * plugins/PluginMainThreadScheduler.cpp:
55847         (WebCore::PluginMainThreadScheduler::scheduleCall):
55848         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55849         * plugins/PluginStream.cpp:
55850         (WebCore::PluginStream::startStream):
55851         * plugins/blackberry/PluginDataBlackBerry.cpp:
55852         (WebCore::PluginData::initPlugins):
55853         * plugins/wx/PluginDataWx.cpp:
55854         (WebCore::PluginData::initPlugins):
55855         * rendering/ExclusionShapeInsideInfo.cpp:
55856         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55857         * rendering/FlowThreadController.cpp:
55858         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55859         * rendering/InlineFlowBox.cpp:
55860         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55861         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55862         * rendering/RenderBlock.cpp:
55863         (WebCore::RenderBlock::clearFloats):
55864         * rendering/RenderBlockLineLayout.cpp:
55865         (WebCore::setLogicalWidthForTextRun):
55866         * rendering/RenderBoxModelObject.cpp:
55867         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55868         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55869         * rendering/RenderCounter.cpp:
55870         (WebCore::RenderCounter::destroyCounterNodes):
55871         (WebCore::RenderCounter::destroyCounterNode):
55872         (WebCore::updateCounters):
55873         (WebCore::RenderCounter::rendererStyleChanged):
55874         * rendering/RenderFlowThread.cpp:
55875         (WebCore::RenderFlowThread::setRegionRangeForBox):
55876         (WebCore::RenderFlowThread::getRegionRangeForBox):
55877         * rendering/RenderLayer.cpp:
55878         (WebCore::RenderLayer::paint):
55879         (WebCore::performOverlapTests):
55880         * rendering/RenderLayerFilterInfo.cpp:
55881         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55882         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55883         * rendering/RenderNamedFlowThread.cpp:
55884         (WebCore::RenderNamedFlowThread::dependsOn):
55885         (WebCore::RenderNamedFlowThread::pushDependencies):
55886         * rendering/RenderRegion.cpp:
55887         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55888         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55889         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55890         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55891         * rendering/RenderTableSection.cpp:
55892         (WebCore::RenderTableSection::cachedCollapsedBorder):
55893         * rendering/RenderThemeMac.mm:
55894         (WebCore::RenderThemeMac::systemColor):
55895         * rendering/RenderView.cpp:
55896         (WebCore::RenderView::selectionBounds):
55897         (WebCore::RenderView::setSelection):
55898         * rendering/RenderWidget.cpp:
55899         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55900         * rendering/RootInlineBox.cpp:
55901         (WebCore::RootInlineBox::ascentAndDescentForBox):
55902         * rendering/VerticalPositionCache.h:
55903         (WebCore::VerticalPositionCache::get):
55904         * rendering/svg/RenderSVGInlineText.cpp:
55905         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55906         * rendering/svg/RenderSVGResourceFilter.cpp:
55907         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55908         * rendering/svg/RenderSVGResourceGradient.cpp:
55909         (WebCore::RenderSVGResourceGradient::applyResource):
55910         * rendering/svg/RenderSVGResourcePattern.cpp:
55911         (WebCore::RenderSVGResourcePattern::applyResource):
55912         * rendering/svg/SVGResourcesCache.cpp:
55913         (WebCore::SVGResourcesCache::resourceDestroyed):
55914         * rendering/svg/SVGRootInlineBox.cpp:
55915         (WebCore::swapItemsInLayoutAttributes):
55916         * rendering/svg/SVGTextLayoutAttributes.cpp:
55917         (WebCore::SVGTextLayoutAttributes::dump):
55918         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55919         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55920         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55921         * rendering/svg/SVGTextLayoutEngine.cpp:
55922         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55923         * rendering/svg/SVGTextMetricsBuilder.cpp:
55924         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55925         * storage/StorageAreaSync.cpp:
55926         (WebCore::StorageAreaSync::syncTimerFired):
55927         (WebCore::StorageAreaSync::performImport):
55928         (WebCore::StorageAreaSync::sync):
55929         * storage/StorageMap.cpp:
55930         (WebCore::StorageMap::key):
55931         (WebCore::StorageMap::setItem):
55932         * storage/StorageNamespaceImpl.cpp:
55933         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55934         (WebCore::StorageNamespaceImpl::copy):
55935         (WebCore::StorageNamespaceImpl::close):
55936         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55937         (WebCore::StorageNamespaceImpl::sync):
55938         * svg/SVGDocumentExtensions.cpp:
55939         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55940         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55941         (WebCore::SVGDocumentExtensions::addPendingResource):
55942         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55943         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55944         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55945         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55946         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55947         * svg/SVGElement.cpp:
55948         (WebCore::SVGElement::~SVGElement):
55949         * svg/animation/SMILTimeContainer.cpp:
55950         (WebCore::SMILTimeContainer::setElapsed):
55951         (WebCore::SMILTimeContainer::updateAnimations):
55952         * svg/graphics/SVGImageCache.cpp:
55953         (WebCore::SVGImageCache::~SVGImageCache):
55954         (WebCore::SVGImageCache::removeClientFromCache):
55955         (WebCore::SVGImageCache::requestedSizeAndScales):
55956         (WebCore::SVGImageCache::imageContentChanged):
55957         (WebCore::SVGImageCache::redraw):
55958         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55959         * svg/graphics/filters/SVGFilterBuilder.h:
55960         (WebCore::SVGFilterBuilder::effectReferences):
55961         (WebCore::SVGFilterBuilder::addBuiltinEffects):
55962         * svg/properties/SVGAnimatedProperty.h:
55963         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
55964         * svg/properties/SVGAttributeToPropertyMap.cpp:
55965         (WebCore::SVGAttributeToPropertyMap::addProperties):
55966         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
55967         * workers/WorkerContext.cpp:
55968         (WebCore::WorkerContext::hasPendingActivity):
55969         * workers/WorkerEventQueue.cpp:
55970         (WebCore::WorkerEventQueue::close):
55971         * xml/XMLHttpRequest.cpp:
55972         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
55973         (WebCore::XMLHttpRequest::getAllResponseHeaders):
55974         * xml/XPathFunctions.cpp:
55975         (WebCore::XPath::createFunction):
55976         * xml/XPathParser.cpp:
55977         (isAxisName):
55978         * xml/XSLTProcessorLibxslt.cpp:
55979         (WebCore::xsltParamArrayFromParameterMap):
55980         * xml/XSLTProcessorQt.cpp:
55981         (WebCore::XSLTProcessor::transformToString):
55982
55983 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
55984
55985         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
55986         https://bugs.webkit.org/show_bug.cgi?id=98612
55987
55988         Reviewed by Darin Adler.
55989
55990         Since DOM modification can happen outside of JS, calls into JS due to
55991         DOM modification need to take the JS lock.
55992
55993         * bindings/js/JSNodeCustom.cpp:
55994         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
55995         lock before doing a JS allocation, since this may be a JS entrypoint.
55996
55997         * bindings/js/JSNodeCustom.h:
55998         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
55999         to help the inliner.
56000
56001 2012-10-07  Nick Carter  <nick@chromium.org>
56002
56003         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
56004         https://bugs.webkit.org/show_bug.cgi?id=98456
56005
56006         Reviewed by James Robinson.
56007
56008         Handle null return of nativeImageForCurrentFrame.
56009
56010         Test: compositing/images/truncated-direct-png-image.html
56011
56012         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
56013         (WebCore::GraphicsLayerChromium::setContentsToImage):
56014
56015 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
56016
56017         WTFURL: implement URL port removal for HTMLAnchorElement
56018         https://bugs.webkit.org/show_bug.cgi?id=98604
56019
56020         Reviewed by Adam Barth.
56021
56022         * platform/KURLWTFURL.cpp:
56023         (WebCore::KURL::hasPort):
56024         (WebCore::KURL::removePort):
56025         (WebCore::KURL::isHierarchical):
56026         Implement those methods to pass the port removal test of HTMLAnchorElement.
56027
56028 2012-10-05  Dirk Schulze  <krit@webkit.org>
56029
56030         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
56031         https://bugs.webkit.org/show_bug.cgi?id=97986
56032
56033         Reviewed by Daniel Bates.
56034
56035         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
56036         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
56037         the focal radius.
56038         The new specification does not limit the focal point to be inside the radial gradients radius.
56039         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
56040
56041         Test: svg/custom/radialGradient-focal-radius.svg
56042
56043         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
56044             Remove checks for position of focal point. The focal point
56045             can be placed every where outside the radius of the gradient now.
56046         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
56047             Add new method to get the focal radius from SVGRadialGradientElement.
56048         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
56049         * rendering/svg/RenderSVGResourceRadialGradient.h:
56050         (RenderSVGResourceRadialGradient):
56051         * rendering/svg/SVGRenderTreeAsText.cpp:
56052         (WebCore::writeSVGResourceContainer):
56053             Modify DRT output to include the focal radius.
56054         * svg/RadialGradientAttributes.h:
56055         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
56056         (WebCore::RadialGradientAttributes::fr):
56057         (WebCore::RadialGradientAttributes::setFr):
56058         (WebCore::RadialGradientAttributes::hasFr):
56059         (RadialGradientAttributes):
56060             New setters and getters for focal radius.
56061         * svg/SVGRadialGradientElement.cpp:
56062         (WebCore):
56063         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
56064         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
56065         (WebCore::SVGRadialGradientElement::parseAttribute):
56066         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
56067         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
56068             Ditto.
56069         * svg/SVGRadialGradientElement.h:
56070         (SVGRadialGradientElement):
56071         * svg/SVGRadialGradientElement.idl:
56072         * svg/svgattrs.in:
56073             Add 'fr' as new attribute to the SVG attribute list.
56074
56075 2012-10-07  Glenn Adams  <glenn@skynav.com>
56076
56077         Use start instead of -webkit-auto in default and quirks mode stylesheets.
56078         https://bugs.webkit.org/show_bug.cgi?id=98609
56079
56080         Reviewed by Antti Koivisto.
56081
56082         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
56083         in default/quirks stylesheets.
56084         
56085         No new tests. No change of rendering/styling behavior. No performance impact.
56086
56087         * css/html.css:
56088         (input, textarea, keygen, select, button, isindex):
56089         (ruby > rt):
56090         * css/quirks.css:
56091         (table):
56092
56093 2012-10-06  Raul Hudea  <rhudea@adobe.com>
56094
56095         -webkit-clip-path should parse IRIs
56096         https://bugs.webkit.org/show_bug.cgi?id=96381
56097
56098         Reviewed by Andreas Kling.
56099
56100         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56101         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56102
56103         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56104                css3/masking/clip-path-reference.html
56105                fast/masking/parsing-clip-path-iri.html
56106
56107         * css/CSSComputedStyleDeclaration.cpp:
56108         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56109         * css/CSSParser.cpp:
56110         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56111         * css/StyleBuilder.cpp:
56112         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56113         * rendering/ClipPathOperation.h:
56114         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56115         (WebCore::ReferenceClipPathOperation::create):
56116         (WebCore::ReferenceClipPathOperation::url):
56117         (WebCore::ReferenceClipPathOperation::fragment):
56118         (WebCore::ReferenceClipPathOperation::operator==):
56119         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56120         (WebCore):
56121         * rendering/RenderLayer.cpp:
56122         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56123         * rendering/svg/RenderSVGResourceClipper.h:
56124         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56125
56126 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56127
56128         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56129         https://bugs.webkit.org/show_bug.cgi?id=98607
56130
56131         Reviewed by Dan Bernstein.
56132
56133         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56134         ImageSource::frameSizeAtIndex().
56135
56136         No new tests because no functional change.
56137
56138         * platform/graphics/cg/ImageSourceCG.cpp:
56139         (WebCore::orientationFromProperties):
56140         (WebCore):
56141         (WebCore::ImageSource::frameSizeAtIndex):
56142         (WebCore::ImageSource::orientationAtIndex):
56143
56144 2012-10-06  Mark Rowe  <mrowe@apple.com>
56145
56146         Build fix.
56147
56148         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56149
56150         * rendering/RenderThemeMac.mm:
56151         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56152         (WebCore::RenderThemeMac::sliderThumbVertical):
56153
56154 2012-10-06  Andreas Kling  <kling@webkit.org>
56155
56156         Clipboard::types() should return an ordered collection.
56157         <http://webkit.org/b/98547>
56158
56159         Reviewed by Darin Adler.
56160
56161         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56162         it retains the order in which type strings are added.
56163
56164         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56165         hash tables, causing the HashSet<String> to rehash and reorder itself.
56166
56167         * bindings/js/JSClipboardCustom.cpp:
56168         (WebCore::JSClipboard::types):
56169         * bindings/v8/custom/V8ClipboardCustom.cpp:
56170         (WebCore::V8Clipboard::typesAccessorGetter):
56171         * dom/Clipboard.h:
56172         (Clipboard):
56173         * platform/blackberry/ClipboardBlackBerry.cpp:
56174         (WebCore::ClipboardBlackBerry::types):
56175         * platform/blackberry/ClipboardBlackBerry.h:
56176         (ClipboardBlackBerry):
56177         * platform/chromium/ChromiumDataObject.cpp:
56178         (WebCore::ChromiumDataObject::types):
56179         * platform/chromium/ChromiumDataObject.h:
56180         (ChromiumDataObject):
56181         * platform/chromium/ClipboardChromium.cpp:
56182         (WebCore::ClipboardChromium::types):
56183         * platform/chromium/ClipboardChromium.h:
56184         (ClipboardChromium):
56185         * platform/efl/ClipboardEfl.cpp:
56186         (WebCore::ClipboardEfl::types):
56187         * platform/efl/ClipboardEfl.h:
56188         (ClipboardEfl):
56189         * platform/gtk/ClipboardGtk.cpp:
56190         (WebCore::ClipboardGtk::types):
56191         * platform/gtk/ClipboardGtk.h:
56192         (ClipboardGtk):
56193         * platform/mac/ClipboardMac.h:
56194         (ClipboardMac):
56195         * platform/mac/ClipboardMac.mm:
56196         (WebCore::addHTMLClipboardTypesForCocoaType):
56197         (WebCore::ClipboardMac::types):
56198         * platform/qt/ClipboardQt.cpp:
56199         (WebCore::ClipboardQt::types):
56200         * platform/qt/ClipboardQt.h:
56201         (ClipboardQt):
56202         * platform/win/ClipboardWin.cpp:
56203         (WebCore::addMimeTypesForFormat):
56204         (WebCore::ClipboardWin::types):
56205         * platform/win/ClipboardWin.h:
56206         (ClipboardWin):
56207         * platform/wx/ClipboardWx.cpp:
56208         (WebCore::ClipboardWx::types):
56209         * platform/wx/ClipboardWx.h:
56210         (ClipboardWx):
56211
56212 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56213
56214         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56215         https://bugs.webkit.org/show_bug.cgi?id=88834
56216
56217         Reviewed by Gavin Barraclough.
56218
56219         Follow-up patch to address some comments by Darin Adler.
56220
56221         * bindings/js/JSNodeCustom.h:
56222         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56223         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56224
56225 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56226
56227         Fix weird use of KURL's protocolIs
56228         https://bugs.webkit.org/show_bug.cgi?id=98584
56229
56230         Reviewed by Adam Barth.
56231
56232         Converting a KURL to string is a bad idea.
56233
56234         Invalid URLs can return a string that pass the tests, while an
56235         invalid URL will fail protocolIs().
56236
56237         * loader/cache/CachedResource.cpp:
56238         (WebCore::CachedResource::removeClient):
56239         * platform/graphics/MediaPlayer.cpp:
56240         (WebCore::MediaPlayer::load):
56241         * platform/network/DataURL.cpp:
56242         (WebCore::handleDataURL):
56243
56244 2012-10-06  Dan Bernstein  <mitz@apple.com>
56245
56246         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56247         https://bugs.webkit.org/show_bug.cgi?id=98601
56248
56249         Reviewed by Darin Adler.
56250
56251         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56252         * platform/graphics/Font.cpp:
56253         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56254         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56255         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56256         * platform/graphics/Font.h:
56257         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56258         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56259
56260 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56261
56262         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56263         https://bugs.webkit.org/show_bug.cgi?id=88834
56264
56265         Reviewed by Gavin Barraclough.
56266
56267         * bindings/js/JSNodeCustom.cpp:
56268         (WebCore::isObservable): Clarified this comment, since it seems to have
56269         misled some folks. 
56270
56271         * bindings/js/JSNodeCustom.h:
56272         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56273         to ensure that a disconnected tree is visible to JavaScript.
56274
56275         * bindings/js/ScriptState.cpp:
56276         (WebCore::mainWorldScriptState): Need to check for null because a document's
56277         frame can be null.
56278
56279         * dom/ContainerNode.cpp:
56280         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56281         document, we sever the reference that JavaScript previously held by
56282         referencing its root. So, we give JavaScript an opportunity to establish
56283         a reference to the new root.
56284
56285 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56286
56287         Fix build warning : -Wunused-parameter.
56288         https://bugs.webkit.org/show_bug.cgi?id=98583
56289
56290         Reviewed by Kentaro Hara.
56291
56292         Use ASSERT_UNUSED() macro to remove build warning.
56293
56294         * plugins/PluginStream.cpp:
56295         (WebCore::PluginStream::delayDeliveryTimerFired):
56296         (WebCore::PluginStream::didReceiveResponse):
56297         (WebCore::PluginStream::didReceiveData):
56298         (WebCore::PluginStream::didFail):
56299         (WebCore::PluginStream::didFinishLoading):
56300         * plugins/PluginView.cpp:
56301         (WebCore::PluginView::requestTimerFired):
56302         (WebCore::PluginView::invalidateTimerFired):
56303
56304 2012-10-05  Adam Barth  <abarth@webkit.org>
56305
56306         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56307         https://bugs.webkit.org/show_bug.cgi?id=98567
56308
56309         Reviewed by Kentaro Hara.
56310
56311         This patch introduces toV8Fast for Node*. This function works a
56312         differently from the existing toV8 function in two ways:
56313
56314         1) It uses the inline wrapper cache in Node to determine if we're
56315            executing in the main world. This is faster both in the case when
56316            isolated worlds exist because we don't need to retrieve any state
56317            for the current context.
56318
56319         2) It doesn't attempt to inline the hash table lookup used to find the
56320            wrapper in the isolated world. There isn't a big need to inline this
56321            code since performance in the isolated world case is dominated by
56322            the hash table lookup.
56323
56324         Because of these two changes, toV8Fast is small enough to inline into
56325         each attribute getter profitably. Over time, I would like to convert
56326         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56327         point, we can delete toV8 and rename toV8Slow to toV8.
56328
56329         * bindings/scripts/CodeGeneratorV8.pm:
56330         (GenerateHeader):
56331         (GenerateNormalAttrGetter):
56332
56333 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56334
56335         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56336         https://bugs.webkit.org/show_bug.cgi?id=94874
56337
56338         Reviewed by Simon Fraser.
56339
56340         Rollback previous patch because this patch caused two problems.
56341         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56342         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56343
56344         * loader/cache/CachedImage.cpp:
56345         (WebCore::CachedImage::shouldPauseAnimation):
56346         * loader/cache/CachedImage.h:
56347         (CachedImage):
56348         * loader/cache/CachedResource.h:
56349         * loader/cache/MemoryCache.cpp:
56350         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56351         * rendering/RenderObject.cpp:
56352         (WebCore::RenderObject::willRenderImage):
56353
56354 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56355
56356         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56357         https://bugs.webkit.org/show_bug.cgi?id=97824
56358
56359         Reviewed by Tony Chang.
56360
56361         The issue occurred when a font that contains vert GSUB table but doesn't have
56362         a DFLT script and the first script doesn't have vert feature. Added logic to
56363         handle the case.
56364
56365         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56366
56367         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56368         (FeatureList):
56369         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56370         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56371
56372 2012-10-05  Tony Chang  <tony@chromium.org>
56373
56374         Form controls should always be horizontal
56375         https://bugs.webkit.org/show_bug.cgi?id=98563
56376
56377         Reviewed by Ojan Vafai.
56378
56379         Fix a regression where we didn't force form controls to be horizontal.
56380
56381         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56382                fast/dom/HTMLProgressElement/progress-writing-mode.html
56383                fast/table/colspanMinWidth-vertical.html
56384
56385         * css/html.css:
56386         (input, textarea, keygen, select, button, isindex, meter, progress):
56387
56388 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56389
56390         Unreviewed, rolling out r130556 and r130564.
56391         http://trac.webkit.org/changeset/130556
56392         http://trac.webkit.org/changeset/130564
56393         https://bugs.webkit.org/show_bug.cgi?id=98572
56394
56395         The patch wasn't reviewed by a reviewer and it is breaking
56396         Chromium Windows (Requested by jchaffraix on #webkit).
56397
56398         * WebCore.exp.in:
56399         * WebCore.xcodeproj/project.pbxproj:
56400         * css/mediaControls.css:
56401         (video::-webkit-media-text-track-container):
56402         (video::-webkit-media-text-track-past-nodes):
56403         (video::-webkit-media-text-track-future-nodes):
56404         (video::-webkit-media-text-track-display):
56405         * html/HTMLMediaElement.cpp:
56406         (WebCore::HTMLMediaElement::HTMLMediaElement):
56407         (WebCore::HTMLMediaElement::attach):
56408         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56409         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56410         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56411         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56412         * html/HTMLMediaElement.h:
56413         (HTMLMediaElement):
56414         * html/shadow/MediaControlElements.cpp:
56415         (WebCore):
56416         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56417         * html/shadow/MediaControlElements.h:
56418         (MediaControlTextTrackContainerElement):
56419         * html/shadow/MediaControlRootElement.cpp:
56420         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56421         * html/shadow/MediaControlRootElement.h:
56422         (MediaControlRootElement):
56423         * html/shadow/MediaControls.h:
56424         (MediaControls):
56425         * html/track/TextTrack.cpp:
56426         (WebCore::TextTrack::TextTrack):
56427         (WebCore::TextTrack::isValidKindKeyword):
56428         (WebCore::TextTrack::setKind):
56429         (WebCore::TextTrack::setMode):
56430         (WebCore::TextTrack::mode):
56431         * html/track/TextTrack.h:
56432         (WebCore::TextTrack::create):
56433         (WebCore::TextTrack::kind):
56434         (TextTrack):
56435         (WebCore::TextTrack::label):
56436         (WebCore::TextTrack::setLabel):
56437         (WebCore::TextTrack::language):
56438         (WebCore::TextTrack::setLanguage):
56439         * html/track/TextTrackCue.cpp:
56440         (WebCore::TextTrackCueBox::TextTrackCueBox):
56441         (WebCore::TextTrackCueBox::shadowPseudoId):
56442         (WebCore):
56443         (WebCore::TextTrackCue::updateDisplayTree):
56444         * html/track/TextTrackCue.h:
56445         (TextTrackCueBox):
56446         (TextTrackCue):
56447         * platform/mac/WebCoreSystemInterface.h:
56448         * platform/mac/WebCoreSystemInterface.mm:
56449         * rendering/CaptionPreferencesChangedListener.h: Removed.
56450         * rendering/RenderTheme.h:
56451         (WebCore):
56452         (RenderTheme):
56453         * rendering/RenderThemeMac.h:
56454         (RenderThemeMac):
56455         * rendering/RenderThemeMac.mm:
56456         (WebCore):
56457         (WebCore::RenderThemeMac::RenderThemeMac):
56458         (WebCore::RenderThemeMac::~RenderThemeMac):
56459
56460 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56461
56462         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56463         https://bugs.webkit.org/show_bug.cgi?id=98565
56464         <rdar://problem/12436468>
56465
56466         Reviewed by Simon Fraser.
56467
56468         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56469         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56470
56471         No new tests, as this requires an obscure configuration to test.
56472
56473         * WebCore.exp.in:
56474         * platform/graphics/cg/GraphicsContextCG.cpp:
56475         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56476         (WebCore::GraphicsContext::setPlatformShadow):
56477         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56478         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56479
56480 2012-10-05  Anders Carlsson  <andersca@apple.com>
56481
56482         Try to fix the build.
56483
56484         * rendering/RenderThemeMac.mm:
56485         (WebCore::RenderThemeMac::captionsWindowColor):
56486
56487 2012-10-05  Eric Seidel  <eric@webkit.org>
56488
56489         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56490         https://bugs.webkit.org/show_bug.cgi?id=98550
56491
56492         Reviewed by Andreas Kling.
56493
56494         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56495         http://www.robohornet.org/tests/resizecol.html
56496
56497         * rendering/AutoTableLayout.cpp:
56498         (WebCore::AutoTableLayout::recalcColumn):
56499         * rendering/style/RenderStyle.cpp:
56500         * rendering/style/RenderStyle.h:
56501
56502 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56503
56504         Allow ports to override text track rendering style
56505         https://bugs.webkit.org/show_bug.cgi?id=97800
56506         <rdar://problem/12044964>
56507
56508         Reviewed by Silvia Pfeiffer.
56509
56510         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56511         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56512
56513         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56514             background, and text independently.
56515
56516         * html/HTMLMediaElement.cpp:
56517         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56518         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56519         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56520         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56521         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56522         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56523             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56524         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56525         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56526             setClosedCaptionsVisible
56527         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56528
56529         * html/shadow/MediaControlElements.cpp:
56530         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56531             has a captions style sheet override, inject it into the current page group, otherwise
56532             remove injected sheet.
56533         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56534             variable. Get caption font scale from theme instead of hard coding.
56535         * html/shadow/MediaControlElements.h:
56536
56537         * html/shadow/MediaControlRootElement.cpp:
56538         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56539         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56540         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56541
56542         * html/shadow/MediaControls.h:
56543         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56544
56545         * html/track/TextTrackCue.cpp:
56546         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56547         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56548             shadow pseudo id so it can be used elsewhere.
56549         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56550         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56551             shadow pseudo id so it can be used elsewhere.
56552         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56553         (WebCore::TextTrackCue::updateDisplayTree):
56554         * html/track/TextTrackCue.h:
56555
56556         * platform/mac/WebCoreSystemInterface.h: Updated.
56557         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56558
56559         * rendering/CaptionPreferencesChangedListener.h: Added.
56560
56561         * rendering/RenderTheme.h:
56562         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56563         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56564         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56565         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56566         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56567         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56568
56569         * rendering/RenderThemeMac.h:
56570         * rendering/RenderThemeMac.mm:
56571         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56572         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56573         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56574         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56575         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56576         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56577         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56578             background color preference.
56579         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56580         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56581         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56582             or webkit-text-stroke property.
56583         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56584             with a color value.
56585         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56586             text with the user's preferred text edge stye.
56587         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56588             text with the user's preferred font.
56589         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56590             with the user's preferred style.
56591         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56592         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56593         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56594             changes listener.
56595         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56596             changes listener.
56597
56598 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56599
56600         Inline continuations create :after generated content on style recalcs
56601         https://bugs.webkit.org/show_bug.cgi?id=93170
56602
56603         Reviewed by Abhishek Arya.
56604
56605         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56606         RenderObjectChildList uses continuation to know whether the given
56607         renderer should have AFTER render object or not.
56608         However, setContinuation(0) makes RenderObjectChildList to
56609         misunderstand that all continuations are last continuation.
56610         To avoid the misunderstanding, added a new flag to class
56611         RenderObejctChildList to enable/disable updating :after content (and
56612         also :before content).
56613
56614         Tests: fast/css-generated-content/after-with-inline-continuation.html
56615                fast/css-generated-content/dynamic-apply-after-for-inline.html
56616
56617         * rendering/RenderInline.cpp:
56618         (WebCore::RenderInline::styleDidChange):
56619         Disable upating :after content for continuations which are not
56620         the last one during setStyle just after setContinuation(0).
56621         The setStyle invokes RenderInline::styleDidChange and also invokes
56622         updateBeforeAfterContent via the styleDidChange. This means,
56623         the last continuation's updateBeforeAfterContent is also invoked
56624         after setContinuation(0). We have to update :after for the last
56625         continuation.
56626         * rendering/RenderObjectChildList.cpp:
56627         (WebCore):
56628         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56629         If s_updateBeforeAfterContent is false, quickly exit
56630         updateBeforeAfterContent.
56631         * rendering/RenderObjectChildList.h:
56632         (RenderObjectChildList):
56633         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56634         updating :before or :after content.
56635
56636 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56637
56638         Don't assume that TileCache layers are opaque
56639         https://bugs.webkit.org/show_bug.cgi?id=98555
56640
56641         Reviewed by Dean Jackson.
56642
56643         TileCache previously set all its tile CALayers as opaque.
56644         However, we will need non-opaque tile caches when we use this
56645         tile cache for tiled layers, so add a member function to
56646         control tile opacity.
56647         
56648         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56649         using the FrameView's notion of opaqueness, so this change will
56650         cause the main tile cache to be non-opaque if external forces have
56651         set the FrameView to be non-opaque.
56652         
56653         Also tweak the layer border widths on tiled layers.
56654
56655         * platform/graphics/ca/mac/TileCache.h:
56656         (TileCache):
56657         (WebCore::TileCache::tilesAreOpaque):
56658         * platform/graphics/ca/mac/TileCache.mm:
56659         (WebCore::TileCache::TileCache):
56660         (WebCore::TileCache::setTilesOpaque):
56661         (WebCore::TileCache::createTileLayer):
56662         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56663         (-[WebTileCacheLayer setOpaque:]):
56664         (-[WebTileCacheLayer isOpaque]):
56665         (-[WebTileCacheLayer setBorderWidth:]):
56666
56667 2012-10-05  Tony Chang  <tony@chromium.org>
56668
56669         Fix margin box ascent computation in flexbox
56670         https://bugs.webkit.org/show_bug.cgi?id=98540
56671
56672         Reviewed by Ojan Vafai.
56673
56674         The margin box ascent doesn't depend on the margin below the box.
56675
56676         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56677                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56678
56679         * rendering/RenderFlexibleBox.cpp:
56680         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56681
56682 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56683
56684         Deprecated flexboxes subtract scrollbar width/height twice
56685         https://bugs.webkit.org/show_bug.cgi?id=98552
56686
56687         Reviewed by Tony Chang.
56688
56689         This is a regression from http://trac.webkit.org/changeset/119507.
56690         The problem is that contentHeight subtracts the scrollbar and
56691         RenderDeprecatedFlexbox subtracts the scrollbar.
56692
56693         -Make it so that we only access override sizes if one has been set.
56694         I think this makes the calling code more clear.
56695         -If we don't have one set, grab the height/width - borderAndPadding.
56696         -Add a FIXME to change this all back to being borderbox sizes.
56697         There's something trick with making table padding/border work right for that
56698         though (noted in the original patch).
56699
56700         Test: fast/flexbox/flexing-overflow-scroll-item.html
56701
56702         * rendering/RenderBox.cpp:
56703         (WebCore::RenderBox::overrideLogicalContentWidth):
56704         (WebCore::RenderBox::overrideLogicalContentHeight):
56705         (WebCore::RenderBox::availableLogicalHeightUsing):
56706         * rendering/RenderBox.h:
56707         (RenderBox):
56708         * rendering/RenderDeprecatedFlexibleBox.cpp:
56709         (WebCore::contentWidthForChild):
56710         (WebCore):
56711         (WebCore::contentHeightForChild):
56712         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56713         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56714         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56715
56716 2012-10-05  Eric Seidel  <eric@webkit.org>
56717
56718         Make tables which don't use col/row span much faster to layout
56719         https://bugs.webkit.org/show_bug.cgi?id=98221
56720
56721         Reviewed by Julien Chaffraix.
56722
56723         My sense is that most tables on webpages do not use colspan/rowspan
56724         so I stole another bit from RenderTableCell::m_column to avoid
56725         having to re-parse the colSpan/rowSpan attributes for every cell
56726         when doing table layout.
56727         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56728         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56729
56730         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56731         since it was attempting to do the same sort of optimization.
56732
56733         * rendering/RenderTableCell.cpp:
56734         (WebCore::RenderTableCell::RenderTableCell):
56735         (WebCore::RenderTableCell::parseColSpanFromDOM):
56736         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56737         (WebCore::RenderTableCell::layout):
56738         * rendering/RenderTableCell.h:
56739         (WebCore::RenderTableCell::colSpan):
56740         (WebCore::RenderTableCell::rowSpan):
56741         (RenderTableCell):
56742
56743 2012-10-05  Oli Lan  <olilan@chromium.org>
56744
56745         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56746         https://bugs.webkit.org/show_bug.cgi?id=98173
56747         
56748         Reviewed by Ryosuke Niwa.
56749
56750         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56751         handleGestureLongPress method. On Android, this method selects the closest word
56752         if the gesture event was over non-link text.
56753
56754         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56755
56756         * page/EventHandler.cpp:
56757         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56758         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56759         (WebCore):
56760         (WebCore::EventHandler::handleGestureEvent):
56761         (WebCore::EventHandler::handleGestureLongPress):
56762         * page/EventHandler.h:
56763         (EventHandler):
56764
56765 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56766
56767         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56768         https://bugs.webkit.org/show_bug.cgi?id=18098
56769
56770         Reviewed by Eric Seidel.
56771
56772         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56773         We're the last browser, afaict, to still enforce this de-facto restriction.
56774         This patch makes <marquee> instead act like a normal element.
56775
56776         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56777
56778         * rendering/RenderMarquee.cpp:
56779         (WebCore::RenderMarquee::updateMarqueeStyle):
56780
56781 2012-10-05  Joe Mason  <jmason@rim.com>
56782
56783         [BlackBerry] Fix regression in proxy auth
56784         https://bugs.webkit.org/show_bug.cgi?id=98533
56785
56786         Reviewed by Yong Li.
56787
56788         The proxy auth dialog gets the proxy address from
56789         BlackBerry::Platform::Settings::proxyAddress, which returns
56790         "host:port", but we try to parse it with a KURL, which expects
56791         "scheme://host:port".  Since this is an http proxy, add http:// to the
56792         url to get it to parse.
56793
56794         PR 220567.
56795
56796         * platform/network/blackberry/NetworkJob.cpp:
56797         (WebCore::NetworkJob::sendRequestWithCredentials):
56798
56799 2012-10-05  Jer Noble  <jer.noble@apple.com>
56800
56801         No autorelease pool in place, causing buildup of autoreleased objects.
56802         https://bugs.webkit.org/show_bug.cgi?id=98522
56803         <rdar://problem/11647950>
56804
56805         Reviewed by Alexey Proskuryakov.
56806
56807         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56808         pool is present during calls from C/C++ into ObjC.
56809
56810         * platform/cf/RunLoopTimerCF.cpp:
56811         (WebCore::timerFired):
56812
56813 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56814
56815         Deleting across multiple paragraphs can change the style of surrounding text
56816         https://bugs.webkit.org/show_bug.cgi?id=97266
56817
56818         Reviewed by Levi Weintraub.
56819
56820         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56821         even when we're not annotating. We don't want to preserve all styles because it's against
56822         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56823         styles from a mail blockquote because that's not a style the user has applied. See the comment
56824         in EditingStyle::wrappingStyleForSerialization.
56825
56826         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56827
56828         * editing/EditingStyle.cpp:
56829         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56830         (WebCore::EditingStyle::wrappingStyleForSerialization):
56831
56832 2012-10-05  Dan Bernstein  <mitz@apple.com>
56833
56834         Reversing a GlyphBuffer needlessly queries its size multiple times
56835         https://bugs.webkit.org/show_bug.cgi?id=98530
56836
56837         Reviewed by Simon Fraser.
56838
56839         No new tests because there is no change in behavior.
56840
56841         * WebCore.xcodeproj/project.pbxproj:
56842         * platform/graphics/FontFastPath.cpp:
56843         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56844         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56845         * platform/graphics/mac/FontComplexTextMac.cpp:
56846         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56847
56848 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56849
56850         [GTK] Add support for creating EGL contexts
56851         https://bugs.webkit.org/show_bug.cgi?id=77921
56852
56853         Reviewed by Martin Robinson.
56854
56855         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56856         options are set up on compile time, with the configure options
56857         --enable-egl and --enable-gles2.
56858
56859         The implementation only adds support for EGL on top of X11, to
56860         isolate the changes to the minimum. More changes should come
56861         later to enable EGL for other targets (as Wayland).
56862
56863         No new tests required, as existing WebGL and AC tests should cover
56864         the cases.
56865
56866         * GNUmakefile.am:
56867         * GNUmakefile.list.am:
56868         * platform/graphics/GraphicsContext3D.h:
56869         (GraphicsContext3D):
56870         * platform/graphics/OpenGLESShims.h:
56871         * platform/graphics/cairo/GLContext.cpp:
56872         (WebCore):
56873         (WebCore::GLContext::sharedX11Display):
56874         (WebCore::GLContext::cleanupSharedX11Display):
56875         (WebCore::activeContextList):
56876         (WebCore::GLContext::addActiveContext):
56877         (WebCore::GLContext::removeActiveContext):
56878         (WebCore::GLContext::cleanupActiveContextsAtExit):
56879         (WebCore::GLContext::createContextForWindow):
56880         (WebCore::GLContext::createOffscreenContext):
56881         * platform/graphics/cairo/GLContext.h:
56882         (GLContext):
56883         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56884         (WebCore::GraphicsContext3D::create):
56885         (WebCore::GraphicsContext3D::GraphicsContext3D):
56886         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56887         (WebCore::GraphicsContext3D::isGLES2Compliant):
56888         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56889         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56890         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56891         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56892         * platform/graphics/egl/GLContextEGL.cpp: Added.
56893         (WebCore):
56894         (WebCore::sharedEGLDisplay):
56895         (WebCore::getEGLConfig):
56896         (WebCore::GLContextEGL::createWindowContext):
56897         (WebCore::GLContextEGL::createPbufferContext):
56898         (WebCore::GLContextEGL::createPixmapContext):
56899         (WebCore::GLContextEGL::createContext):
56900         (WebCore::GLContextEGL::GLContextEGL):
56901         (WebCore::GLContextEGL::~GLContextEGL):
56902         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56903         (WebCore::GLContextEGL::defaultFrameBufferSize):
56904         (WebCore::GLContextEGL::makeContextCurrent):
56905         (WebCore::GLContextEGL::swapBuffers):
56906         (WebCore::GLContextEGL::waitNative):
56907         (WebCore::GLContextEGL::platformContext):
56908         * platform/graphics/egl/GLContextEGL.h: Added.
56909         (WebCore):
56910         (GLContextEGL):
56911         * platform/graphics/glx/GLContextGLX.cpp:
56912         (WebCore::GLContextGLX::createWindowContext):
56913         (WebCore::GLContextGLX::createPbufferContext):
56914         (WebCore::GLContextGLX::createPixmapContext):
56915         (WebCore::GLContextGLX::createContext):
56916         (WebCore::GLContextGLX::~GLContextGLX):
56917         (WebCore::GLContextGLX::defaultFrameBufferSize):
56918         (WebCore::GLContextGLX::makeContextCurrent):
56919         (WebCore::GLContextGLX::swapBuffers):
56920         (WebCore):
56921         (WebCore::GLContextGLX::waitNative):
56922         * platform/graphics/glx/GLContextGLX.h:
56923         (GLContextGLX):
56924         * platform/graphics/mac/GraphicsContext3DMac.mm:
56925         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56926         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56927         (WebCore):
56928         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56929         (WebCore::GraphicsContext3D::readPixels):
56930         (WebCore::GraphicsContext3D::reshapeFBOs):
56931         (WebCore::GraphicsContext3D::renderbufferStorage):
56932         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56933         * platform/graphics/texmap/TextureMapper.h:
56934         * platform/gtk/RedirectedXCompositeWindow.cpp:
56935         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56936         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56937         (WebCore::RedirectedXCompositeWindow::resize):
56938         * platform/gtk/RedirectedXCompositeWindow.h:
56939
56940 2012-10-04  Jon Lee  <jonlee@apple.com>
56941
56942         Add a setting to enable plugin snapshotting
56943         https://bugs.webkit.org/show_bug.cgi?id=98319
56944         <rdar://problem/12426480>
56945
56946         Reviewed by Brady Eidson.
56947
56948         Add a new bit for this preference.
56949
56950         * page/Settings.cpp:
56951         (WebCore::Settings::Settings): Preference is false by default.
56952         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56953         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56954         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56955
56956 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56957
56958         Unreviewed inspector front-end closure compilaiton fixes.
56959
56960         * inspector/InjectedScriptCanvasModuleSource.js:
56961         * inspector/InjectedScriptExterns.js:
56962         (InjectedScriptHost.prototype.getInternalProperties):
56963         * inspector/front-end/DockController.js:
56964         * inspector/front-end/externs.js:
56965         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
56966
56967 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56968
56969         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
56970         https://bugs.webkit.org/show_bug.cgi?id=98453
56971
56972         Reviewed by Ojan Vafai.
56973
56974         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
56975
56976         No new tests, because the unprefixed properties have the same behavior as the prefixed.
56977
56978         * css/fullscreenQuickTime.css:
56979         (video:-webkit-full-screen::-webkit-media-controls-panel):
56980         * css/html.css:
56981         (keygen, select):
56982         (select[size][multiple]):
56983         (select[size="1"]):
56984         (::-webkit-validation-bubble-message):
56985         * css/themeBlackBerry.css:
56986         (input, textarea):
56987         * css/themeChromiumAndroid.css:
56988         (select[size][multiple]):
56989         * css/themeQtNoListboxes.css:
56990         (select[size][multiple]):
56991         * css/themeWin.css:
56992         (select[size="1"]):
56993         * css/view-source.css:
56994         (.webkit-html-message-bubble):
56995
56996 2012-10-05  Kevin Ellis  <kevers@chromium.org>
56997
56998         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
56999         https://bugs.webkit.org/show_bug.cgi?id=98515
57000
57001         Reviewed by Adam Barth.
57002
57003         Enforces a minimum row height for popup menus when a touch device is
57004         detected.  In a previous patch (r127597), the sizing of popup was 
57005         consolidated for touch and non-touch.  Based on user feedback, reverting
57006         to the old behavior for non-touch and only adding padding for touch
57007         devices seems like a much safer strategy.  This patch is not a direct
57008         revert of r127567 since the padding previously used for touch is a bit
57009         excessive.
57010
57011         Covered by existing tests.
57012
57013         * platform/chromium/PopupListBox.cpp:
57014         (WebCore::PopupListBox::getRowHeight):
57015         * platform/chromium/PopupMenuChromium.cpp:
57016         (WebCore):
57017         * platform/chromium/PopupMenuChromium.h:
57018         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
57019         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
57020         (PopupMenuChromium):
57021
57022 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
57023
57024         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
57025         https://bugs.webkit.org/show_bug.cgi?id=98246
57026
57027         Reviewed by Vsevolod Vlasov.
57028
57029         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
57030
57031         Test: inspector/styles/parse-stylesheet-errors.html
57032
57033         * css/CSSParser.cpp:
57034         (WebCore::CSSParser::popRuleData):
57035         (WebCore::CSSParser::markRuleHeaderStart):
57036         (WebCore::CSSParser::markRuleBodyStart):
57037         * css/CSSParser.h:
57038         (CSSParser):
57039
57040 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
57041
57042         Add ARM-NEON support to VectorMath in WebAudio
57043         https://bugs.webkit.org/show_bug.cgi?id=98131
57044
57045         Reviewed by Zoltan Herczeg.
57046
57047         Speed up vector operations in WebAudio with NEON intrinsics.
57048
57049         * platform/audio/VectorMath.cpp:
57050         (WebCore::VectorMath::vsma):
57051         (WebCore::VectorMath::vsmul):
57052         (WebCore::VectorMath::vadd):
57053         (WebCore::VectorMath::vmul):
57054         (WebCore::VectorMath::zvmul):
57055         (WebCore::VectorMath::vsvesq):
57056         (WebCore::VectorMath::vmaxmgv):
57057
57058 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57059
57060         Unreviewed, rolling out r130495.
57061         http://trac.webkit.org/changeset/130495
57062         https://bugs.webkit.org/show_bug.cgi?id=98268
57063
57064         Made WK2 tests crash.
57065
57066         * Target.pri:
57067         * platform/qt/QStyleFacade.cpp: Removed.
57068         * platform/qt/QStyleFacade.h: Removed.
57069
57070 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57071
57072         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
57073         https://bugs.webkit.org/show_bug.cgi?id=98268
57074
57075         Reviewed by Tor Arne Vestbø.
57076
57077         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
57078
57079         QStyleFacade is a pure interface that lives in WebCore/platform/qt
57080         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
57081         minimal interface of what we need to draw with QStyle as well as basic
57082         hit testing and metric retrieval. It also provides a
57083         QStyleFacadeOption class that aggregates common meta-data for
57084         rendering primitives, such as direction, rectangle, state (sunken,
57085         enabled, etc.) or palette. It also provides some more slider/scrollbar
57086         specific fields in a slider sub-structure.
57087
57088         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
57089         them with state information from render objects, before calling straight to QStyle. Most of the common code
57090         was encapsulated in StylePainterQStyle.
57091
57092         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
57093         StylePainterQStyle to populate state into QStyleFacadeOption before
57094         calling into QStyleFacade.
57095
57096         The style facade is then implemented by QStyleFacadeImp, which extracts
57097         meta-data from QStyleFacadeOption arguments, populates style
57098         primitive specific QStyleOption objects and then calls on QStyle.
57099
57100         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57101         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57102         separate QtWebKitWidgets library in the future and therefore cannot use
57103         any WebCore types.
57104
57105         * Target.pri:
57106         * platform/qt/QStyleFacade.cpp: Added.
57107         (WebCore):
57108         (WebCore::QStyleFacade::styleForPage):
57109         * platform/qt/QStyleFacade.h: Added.
57110         (WebCore):
57111         (QStyleFacade):
57112         (WebCore::QStyleFacade::~QStyleFacade):
57113         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57114         (QStyleFacadeOption):
57115         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57116         (WebCore):
57117         (WebCore::RenderThemeQStyle::getStylePainter):
57118         (WebCore::StylePainterQStyle::StylePainterQStyle):
57119         (WebCore::StylePainterQStyle::init):
57120         (WebCore::RenderThemeQStyle::create):
57121         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57122         (WebCore::RenderThemeQStyle::styleFactory):
57123         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57124         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57125         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57126         (WebCore::RenderThemeQStyle::inflateButtonRect):
57127         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57128         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57129         (WebCore::RenderThemeQStyle::setButtonPadding):
57130         (WebCore::RenderThemeQStyle::paintButton):
57131         (WebCore::RenderThemeQStyle::paintTextField):
57132         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57133         (WebCore::RenderThemeQStyle::paintTextArea):
57134         (WebCore::RenderThemeQStyle::setPopupPadding):
57135         (WebCore::RenderThemeQStyle::colorPalette):
57136         (WebCore::RenderThemeQStyle::paintMenuList):
57137         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57138         (WebCore::RenderThemeQStyle::paintMenuListButton):
57139         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57140         (WebCore::RenderThemeQStyle::paintProgressBar):
57141         (WebCore::RenderThemeQStyle::paintSliderTrack):
57142         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57143         (WebCore::RenderThemeQStyle::paintSliderThumb):
57144         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57145         (WebCore::RenderThemeQStyle::paintSearchField):
57146         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57147         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57148         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57149         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57150         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57151         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57152         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57153         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57154         (WebCore):
57155         (RenderThemeQStyle):
57156         (WebCore::RenderThemeQStyle::qStyle):
57157         (StylePainterQStyle):
57158         (WebCore::StylePainterQStyle::isValid):
57159         (WebCore::StylePainterQStyle::paintButton):
57160         (WebCore::StylePainterQStyle::paintTextField):
57161         (WebCore::StylePainterQStyle::paintComboBox):
57162         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57163         (WebCore::StylePainterQStyle::paintSliderTrack):
57164         (WebCore::StylePainterQStyle::paintSliderThumb):
57165         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57166         (WebCore::StylePainterQStyle::paintProgressBar):
57167         (WebCore::StylePainterQStyle::paintScrollCorner):
57168         (WebCore::StylePainterQStyle::paintScrollBar):
57169         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57170         (WebCore):
57171         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57172         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57173         (WebCore::scPart):
57174         (WebCore::scrollbarPart):
57175         (WebCore::initSliderStyleOption):
57176         (WebCore::ScrollbarThemeQStyle::paint):
57177         (WebCore::ScrollbarThemeQStyle::hitTest):
57178         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57179         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57180         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57181         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57182         (WebCore::ScrollbarThemeQStyle::thumbLength):
57183         (WebCore::ScrollbarThemeQStyle::trackPosition):
57184         (WebCore::ScrollbarThemeQStyle::trackLength):
57185         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57186         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57187         (WebCore):
57188         (ScrollbarThemeQStyle):
57189         (WebCore::ScrollbarThemeQStyle::qStyle):
57190
57191 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57192
57193         Incomplete repaint of boxes with inset box-shadow and padding when resized
57194         https://bugs.webkit.org/show_bug.cgi?id=59863
57195
57196         Reviewed by Simon Fraser.
57197
57198         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.
57199
57200         New Test: fast/repaint/box-shadow-inset-repaint.html
57201
57202         * rendering/RenderObject.cpp:
57203         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57204         * rendering/style/RenderStyle.cpp:
57205         (WebCore::RenderStyle::getShadowInsetExtent):
57206         (WebCore):
57207         * rendering/style/RenderStyle.h:
57208
57209 2012-10-04  Kent Tamura  <tkent@chromium.org>
57210
57211         Fix sub-field width to the maximum width of a placeholder and the maximum value
57212         https://bugs.webkit.org/show_bug.cgi?id=98481
57213
57214         Reviewed by Hajime Morita.
57215
57216         We can't assume a placeholder text is shorter than the width of
57217         digits. The placeholder string for the year field of
57218         input[type=week] is "----", but input[type=date] will have a
57219         localized string for it.
57220
57221         We should set the 'width' CSS property to the maximum of the
57222         placeholder width and the maximum value width in order to prevent
57223         the field width from growing/narrowing.
57224
57225         Before this patch, we secured four digits space for a year field,
57226         and allowed the field to grow its width when a larger year is
57227         set. After this patch, we don't allow it to grow because the
57228         'width' property is set to the maximum width.
57229
57230         Update week-multiple-fields-appearance-basic.html, and the
57231         following tests are affected.
57232         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57233         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57234         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57235
57236         * html/shadow/DateTimeNumericFieldElement.cpp:
57237         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57238         Enable customStyleForRenderer.
57239         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57240         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57241         (WebCore::DateTimeNumericFieldElement::formatValue):
57242         Made a function with the code in value(). This is used in
57243         customStyleForRenderer() and value().
57244         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57245         * html/shadow/DateTimeNumericFieldElement.h:
57246         (DateTimeNumericFieldElement): Declare new functions.
57247
57248 2012-10-05  Kent Tamura  <tkent@chromium.org>
57249
57250         Improve spelling and performance of Localizer.cpp
57251         https://bugs.webkit.org/show_bug.cgi?id=98485
57252
57253         Reviewed by Kentaro Hara.
57254
57255         Some improvements pointed in webkit.org/b/98229#c5.
57256
57257         No new tests because of no behavior change.
57258
57259         * platform/text/Localizer.h:
57260         (Localizer):
57261          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57262          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57263          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57264         * platform/text/Localizer.cpp:
57265         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57266         (WebCore::Localizer::shortTimeFormat): Ditto.
57267         (WebCore::Localizer::dateTimeFormatWithSeconds):
57268         - Renamed.
57269         - Cache the concatenation result to a data member.
57270         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57271
57272         * html/DateTimeInputType.cpp:
57273         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57274         * html/DateTimeLocalInputType.cpp:
57275         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57276
57277 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57278
57279         [WebSocket] ExtensionParser should have its own file
57280         https://bugs.webkit.org/show_bug.cgi?id=98475
57281
57282         Reviewed by Yuta Kitamura.
57283
57284         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57285         WebSocketExtensionParser has its own file.
57286
57287         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57288
57289         * CMakeLists.txt: Added WebSocketExtensionParser.
57290         * GNUmakefile.list.am: Ditto.
57291         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57292         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57293         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57294         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57295         (WebCore):
57296         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57297         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57298         (WebCore::isSeparator): Ditto.
57299         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57300         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57301         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57302         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57303         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57304         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57305         * Modules/websockets/WebSocketExtensionParser.h: Added.
57306         (WebCore):
57307         (WebSocketExtensionParser):
57308         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57309         (WebCore::WebSocketExtensionParser::currentToken):
57310         * Target.pri: Added WebSocketExtensionParser.
57311         * WebCore.gypi: Ditto.
57312         * WebCore.vcproj/WebCore.vcproj: Ditto.
57313         * WebCore.xcodeproj/project.pbxproj: Ditto.
57314
57315 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57316
57317         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57318         https://bugs.webkit.org/show_bug.cgi?id=61675
57319
57320         Reviewed by Kent Tamura.
57321
57322         According to the spec, the size IDL attribute of input elements is limited
57323         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57324         exception when set to 0. New behavior matches both Firefox and IE.
57325         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57326
57327         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57328
57329         * html/HTMLInputElement.cpp:
57330         (WebCore::HTMLInputElement::setSize):
57331         * html/HTMLInputElement.h:
57332         (HTMLInputElement):
57333         * html/HTMLInputElement.idl:
57334
57335 2012-10-04  Kent Tamura  <tkent@chromium.org>
57336
57337         Fix font for date/time input types.
57338         https://bugs.webkit.org/show_bug.cgi?id=98478
57339
57340         Reviewed by Kentaro Hara.
57341
57342         input[type=date] should use monospace font if
57343         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57344
57345         For other date/time types, they should use monospace font only
57346         if their types are enabled. input[type="foo"] matches input
57347         element with type="foo" even if the foo type is not supported.
57348
57349         The input[type=date] change is covered by
57350         fast/forms/date/calendar-picker-appearance.html,
57351         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57352
57353         * css/html.css:
57354         (input[type="date"]):
57355         (input[type="datetime"]):
57356         (input[type="datetime-local"]):
57357         (input[type="month"]):
57358         (input[type="time"]):
57359
57360 2012-10-04  Hajime Morrita  <morrita@google.com>
57361
57362         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57363         https://bugs.webkit.org/show_bug.cgi?id=98469
57364
57365         Reviewed by Dimitri Glazkov.
57366
57367         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57368         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57369
57370         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57371         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57372
57373         No new tests. Just splitting file and doing simple rename.
57374
57375         * CMakeLists.txt:
57376         * GNUmakefile.list.am:
57377         * Target.pri:
57378         * WebCore.gypi:
57379         * WebCore.xcodeproj/project.pbxproj:
57380         * css/CSSAllInOne.cpp:
57381         * css/RuleFeature.cpp: Added.
57382         (WebCore):
57383         (WebCore::RuleFeatureSet::add):
57384         (WebCore::RuleFeatureSet::clear):
57385         (WebCore::RuleFeatureSet::reportMemoryUsage):
57386         * css/RuleFeature.h: Added.
57387         (WebCore):
57388         (RuleFeature):
57389         (WebCore::RuleFeature::RuleFeature):
57390         (RuleFeatureSet):
57391         (WebCore::RuleFeatureSet::RuleFeatureSet):
57392         * css/RuleSet.cpp: Added.
57393         (WebCore):
57394         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57395         (WebCore::selectorListContainsUncommonAttributeSelector):
57396         (WebCore::isCommonAttributeSelectorAttribute):
57397         (WebCore::containsUncommonAttributeSelector):
57398         (WebCore::RuleData::RuleData):
57399         (WebCore::RuleData::reportMemoryUsage):
57400         (WebCore::reportAtomRuleMap):
57401         (WebCore::RuleSet::reportMemoryUsage):
57402         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57403         (WebCore::collectFeaturesFromSelector):
57404         (WebCore::collectFeaturesFromRuleData):
57405         (WebCore::RuleSet::addToRuleSet):
57406         (WebCore::RuleSet::addRule):
57407         (WebCore::RuleSet::addPageRule):
57408         (WebCore::RuleSet::addRegionRule):
57409         (WebCore::RuleSet::addRulesFromSheet):
57410         (WebCore::RuleSet::addStyleRule):
57411         (WebCore::shrinkMapVectorsToFit):
57412         (WebCore::RuleSet::shrinkToFit):
57413         * css/RuleSet.h: Added.
57414         (WebCore):
57415         (RuleData):
57416         (WebCore::RuleData::position):
57417         (WebCore::RuleData::rule):
57418         (WebCore::RuleData::selector):
57419         (WebCore::RuleData::selectorIndex):
57420         (WebCore::RuleData::hasFastCheckableSelector):
57421         (WebCore::RuleData::hasMultipartSelector):
57422         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57423         (WebCore::RuleData::containsUncommonAttributeSelector):
57424         (WebCore::RuleData::specificity):
57425         (WebCore::RuleData::linkMatchType):
57426         (WebCore::RuleData::hasDocumentSecurityOrigin):
57427         (WebCore::RuleData::isInRegionRule):
57428         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57429         (SameSizeAsRuleData):
57430         (RuleSet):
57431         (WebCore::RuleSet::create):
57432         (WebCore::RuleSet::disableAutoShrinkToFit):
57433         (WebCore::RuleSet::features):
57434         (WebCore::RuleSet::idRules):
57435         (WebCore::RuleSet::classRules):
57436         (WebCore::RuleSet::tagRules):
57437         (WebCore::RuleSet::shadowPseudoElementRules):
57438         (WebCore::RuleSet::linkPseudoClassRules):
57439         (WebCore::RuleSet::focusPseudoClassRules):
57440         (WebCore::RuleSet::universalRules):
57441         (WebCore::RuleSet::pageRules):
57442         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57443         (RuleSetSelectorPair):
57444         (WebCore::RuleSet::RuleSet):
57445         * css/StyleResolver.cpp:
57446         (WebCore):
57447         (WebCore::makeRuleSet):
57448         (WebCore::StyleResolver::collectMatchingRulesForList):
57449         * css/StyleResolver.h:
57450         (StyleResolver):
57451
57452 2012-10-04  Adam Barth  <abarth@webkit.org>
57453
57454         FeatureObserver should distinguish between legacy HTML and text notifications
57455         https://bugs.webkit.org/show_bug.cgi?id=98441
57456
57457         Reviewed by Tony Chang.
57458
57459         We might be able to drop support for legacy HTML notifications before
57460         we can drop support for legacy text notifications. We should measure
57461         and find out.
57462
57463         * Modules/notifications/NotificationCenter.idl:
57464         * page/FeatureObserver.h:
57465
57466 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57467
57468         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57469         https://bugs.webkit.org/show_bug.cgi?id=98444
57470
57471         Reviewed by Eric Seidel.
57472
57473         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57474         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57475         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57476
57477         Code cleanup patch. No new tests required.
57478
57479         * html/HTMLFormElement.cpp:
57480         (WebCore::HTMLFormElement::HTMLFormElement):
57481           Removed m_wasMalformed initialization.
57482
57483         * html/HTMLFormElement.h:
57484         (HTMLFormElement):
57485          Removed m_wasMalformed variable.
57486          Removed m_wasMalformed variable's setter and getter functions.
57487
57488         * rendering/RenderBlock.cpp:
57489         (WebCore::RenderBlock::layoutBlock):
57490          Removed code fragment using/dependent on m_wasMalformed.
57491
57492 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57493
57494         Turn Compositing on by default in WebKit build
57495         https://bugs.webkit.org/show_bug.cgi?id=98315
57496
57497         Reviewed by Simon Fraser.
57498
57499         enable -webkit-blend-mode on trunk.
57500
57501         No new tests. Existing blending test were updated.
57502
57503         * Configurations/FeatureDefines.xcconfig:
57504         * css/CSSPropertyNames.in:
57505         * css/CSSValueKeywords.in:
57506
57507 2012-10-04  Hayato Ito  <hayato@chromium.org>
57508
57509         [Refactoring] Introduce a traversal strategy in SelectorChecker
57510         https://bugs.webkit.org/show_bug.cgi?id=97298
57511
57512         Reviewed by Antti Koivisto.
57513
57514         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57515         Another traversal strategy will be introduced in Bug 96990.
57516
57517         Since this code path is very hot, we were very careful not to regress performance.
57518         We will use template specialization to change the traversal implementation.
57519
57520         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57521         the added test in my Linux Box using run-perf-tests.
57522
57523         The performance of the added test before using this patch was:
57524
57525           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57526           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57527
57528         When we used this patch, the performance was:
57529
57530           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57531           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57532
57533         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57534
57535         * css/SelectorChecker.cpp:
57536         (WebCore):
57537         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57538         Another Context type will be introduced in coming patch.
57539         (WebCore::SelectorChecker::checkOneSelector):
57540         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57541         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57542         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57543         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57544         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57545         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57546         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57547         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57548         * css/SelectorChecker.h:
57549         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57550         (SelectorCheckingContext):
57551         (SelectorChecker):
57552         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57553         will be introduced the coming patch.
57554
57555 2012-10-04  Eric Seidel  <eric@webkit.org>
57556
57557         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57558         https://bugs.webkit.org/show_bug.cgi?id=98473
57559
57560         Reviewed by Adam Barth.
57561
57562         I tested this using instruments on a test case which modified SVG attributes in a loop.
57563         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,
57564         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57565
57566         * svg/SVGElement.h:
57567         (WebCore::SVGAttributeHashTranslator::hash):
57568         (WebCore::SVGAttributeHashTranslator::equal):
57569
57570 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57571
57572         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57573         https://bugs.webkit.org/show_bug.cgi?id=98454
57574
57575         Reviewed by Eric Seidel.
57576
57577         RenderTableSection::layoutRows is very long and it's difficult to see what's
57578         going on. This change moves the intrinsic padding update code into RenderTableCell
57579         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57580
57581         Change covered by existing table tests.
57582
57583         * rendering/RenderTableCell.cpp:
57584         (WebCore::RenderTableCell::computeIntrinsicPadding):
57585         Added this new function that does the update. Removed the 'default' case, replaced by
57586         the explicit label BASELINE_MIDDLE.
57587
57588         * rendering/RenderTableCell.h:
57589         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57590         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57591         (WebCore::RenderTableCell::setIntrinsicPadding):
57592         Moved those setters to the private section as we want other classes
57593         to use computeIntrinsicPadding.
57594
57595         * rendering/RenderTableSection.cpp:
57596         (WebCore::RenderTableSection::layoutRows):
57597         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57598         Also moved 2 variables in the loop per our coding style.
57599
57600         * rendering/RenderTableSection.h:
57601         (WebCore::RenderTableSection::rowBaseline):
57602         Renamed to match our coding style.
57603
57604 2012-10-04  Nate Chapin  <japhet@chromium.org>
57605
57606         Crash in EventHandler::mouseMoved().
57607         https://bugs.webkit.org/show_bug.cgi?id=98460
57608
57609         Reviewed by Abhishek Arya.
57610
57611         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57612
57613         * page/EventHandler.cpp:
57614         (WebCore::EventHandler::mouseMoved):
57615
57616 2012-10-04  Adam Barth  <abarth@webkit.org>
57617
57618         [V8] NotificationCenter leaks because it uses buggy custom bindings
57619         https://bugs.webkit.org/show_bug.cgi?id=98445
57620
57621         Reviewed by Tony Chang.
57622
57623         There's no reason to use custom bindings here. All they do is cause leaks..
57624
57625         * Modules/notifications/NotificationCenter.idl:
57626         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57627
57628 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57629
57630         Selector specificity categories "overflow" into higher categories
57631         https://bugs.webkit.org/show_bug.cgi?id=98295
57632
57633         Reviewed by Eric Seidel.
57634
57635         This patch adds per-component overflow guards for CSS selector specificity.
57636         Previously, we didn't guard against overflow. 
57637         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57638         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57639         This violated the Selectors specification,
57640         which requires the components to be compared lexicographically.
57641
57642         Tests: /fast/selectors/specificity-overflow.html
57643
57644         * css/CSSSelector.cpp:
57645         (WebCore::CSSSelector::specificity):
57646
57647 2012-10-04  Enrica Casucci  <enrica@apple.com>
57648
57649         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57650         https://bugs.webkit.org/show_bug.cgi?id=98452.
57651
57652         Reviewed by Dan Bernstein.
57653
57654         The text orientation was considered only when there is a cache hit.
57655         This change moves the logic to handle text orientation to a separate
57656         inline function that is called also when the glyph is added to the cache.
57657
57658         Test: fast/text/vertical-rl-rtl-linebreak.html
57659
57660         * platform/graphics/FontFastPath.cpp:
57661         (WebCore::applyTextOrientationForCharacter): Added.
57662         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57663         both cases of cold and warm cache.
57664
57665 2012-10-04  Adam Klein  <adamk@chromium.org>
57666
57667         MutationRecord attributeName should be null for non attribute changes
57668         https://bugs.webkit.org/show_bug.cgi?id=98438
57669
57670         Reviewed by Ojan Vafai.
57671
57672         Test: fast/mutation/mutation-record-nullity.html
57673
57674         * dom/MutationRecord.idl:
57675
57676 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57677
57678         Final part of "sync" to "flush" renaming
57679         https://bugs.webkit.org/show_bug.cgi?id=98430
57680
57681         Reviewed by Tim Horton.
57682
57683         Change method names on GraphicsLayer and GraphicsLayerClient that
57684         refer to "sync" to use the term "flush" instead, to be consistent
57685         with the rest of the code.
57686
57687         * platform/graphics/GraphicsLayer.h:
57688         (WebCore::GraphicsLayer::flushCompositingState):
57689         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57690         * platform/graphics/GraphicsLayerClient.h:
57691         (GraphicsLayerClient):
57692         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57693         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57694         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57695         (WebCore::LayerWebKitThread::setNeedsCommit):
57696         * platform/graphics/ca/GraphicsLayerCA.cpp:
57697         (WebCore::GraphicsLayerCA::flushCompositingState):
57698         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57699         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57700         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57701         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57702         * platform/graphics/ca/GraphicsLayerCA.h:
57703         (GraphicsLayerCA):
57704         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57705         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57706         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57707         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57708         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57709         (GraphicsLayerTextureMapper):
57710         * platform/graphics/texmap/TextureMapperLayer.cpp:
57711         (WebCore::TextureMapperLayer::flushCompositingState):
57712         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57713         * platform/graphics/texmap/TextureMapperLayer.h:
57714         (TextureMapperLayer):
57715         * rendering/RenderLayerBacking.cpp:
57716         (WebCore::RenderLayerBacking::notifyFlushRequired):
57717         * rendering/RenderLayerBacking.h:
57718         (RenderLayerBacking):
57719         * rendering/RenderLayerCompositor.cpp:
57720         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57721         * rendering/RenderLayerCompositor.h:
57722         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57723
57724 2012-10-04  Tab Atkins  <tabatkins@google.com>
57725
57726         1ex should equal .5em when the font has no x-height metric
57727         https://bugs.webkit.org/show_bug.cgi?id=80360
57728
57729         Reviewed by Eric Seidel.
57730
57731         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57732
57733         Updated a few of the platform font files to set the flag properly.
57734
57735         Patch cleanup by David Barr <davidbarr@chromium.org>.
57736
57737         Test: fast/css/ex-unit-with-no-x-height.html
57738
57739         * css/CSSPrimitiveValue.cpp:
57740         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57741         * platform/graphics/FontMetrics.h:
57742         (WebCore::FontMetrics::FontMetrics):
57743         (WebCore::FontMetrics::setXHeight):
57744         (FontMetrics):
57745         (WebCore::FontMetrics::hasXHeight):
57746         (WebCore::FontMetrics::setHasXHeight):
57747         (WebCore::FontMetrics::reset):
57748         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57749         (WebCore::SimpleFontData::platformInit):
57750
57751 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57752
57753         Build fix after r130411. Add the right offset.
57754         Also use RefPtr instead of a raw pointer for next and previous pointers.
57755
57756         * editing/ReplaceSelectionCommand.cpp:
57757         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57758
57759 2012-10-04  Alec Flett  <alecflett@chromium.org>
57760
57761         IndexedDB: promote objectstore/index backend ids to the frontend
57762         https://bugs.webkit.org/show_bug.cgi?id=97834
57763
57764         Reviewed by Tony Chang.
57765
57766         Expose int64-based database/objectStore/index ids to the renderer,
57767         step 1 of 2. Support both styles of createObjectStore and
57768         createIndex: those that take an explicit id, and those that take
57769         -1, meaning to autogenerate an id on the backend. In part 2, after
57770         the chromium side lands, support for the autogenerated ids will be
57771         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57772
57773         This is a part of larger refactoring work to ultimately make the interface
57774         between the frontend and the backend simpler.
57775
57776         No new tests, extensive ASSERTs and existing tests cover correctness.
57777
57778         * Modules/indexeddb/IDBBackingStore.h:
57779         (IDBBackingStore):
57780         * Modules/indexeddb/IDBDatabase.cpp:
57781         (WebCore::IDBDatabase::createObjectStore):
57782         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57783         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57784         (WebCore::IDBDatabaseBackendImpl::openInternal):
57785         (WebCore::IDBDatabaseBackendImpl::metadata):
57786         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57787         (WebCore):
57788         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57789         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57790         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57791         (IDBDatabaseBackendImpl):
57792         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57793         (IDBDatabaseBackendInterface):
57794         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57795         (WebCore::IDBIndexBackendImpl::metadata):
57796         * Modules/indexeddb/IDBIndexBackendImpl.h:
57797         (WebCore::IDBIndexBackendImpl::create):
57798         (IDBIndexBackendImpl):
57799         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57800         (WebCore):
57801         (WebCore::getMaxObjectStoreId):
57802         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57803         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57804         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57805         (WebCore::setMaxObjectStoreId):
57806         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57807         (WebCore::getMaxIndexId):
57808         (WebCore::setMaxIndexId):
57809         (WebCore::IDBLevelDBBackingStore::createIndex):
57810         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57811         (IDBLevelDBBackingStore):
57812         * Modules/indexeddb/IDBMetadata.h:
57813         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57814         (IDBDatabaseMetadata):
57815         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57816         (IDBObjectStoreMetadata):
57817         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57818         (IDBIndexMetadata):
57819         * Modules/indexeddb/IDBObjectStore.cpp:
57820         (WebCore::IDBObjectStore::createIndex):
57821         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57822         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57823         (WebCore::IDBObjectStoreBackendImpl::metadata):
57824         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57825         (WebCore):
57826         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57827         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57828         (WebCore::IDBObjectStoreBackendImpl::create):
57829         (IDBObjectStoreBackendImpl):
57830         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57831 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57832
57833         Layout broken after cloning and re-inserting a table with a misplaced <form>
57834         https://bugs.webkit.org/show_bug.cgi?id=86746
57835
57836         Reviewed by Julien Chaffraix.
57837
57838         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57839         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57840         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57841         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57842         results in the table getting improperly rendered.
57843
57844         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57845
57846         * html/HTMLFormElement.cpp:
57847         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57848           Extended the virtual function for HTMLFormElement class specific implementation.
57849           The function is used to copy any necessary state information(member variables) associated with
57850           the <form> element being cloned to the current node.
57851           For HTMLFormElement node the member variable can be classified into five groups based on the 
57852           information they hold:
57853             1) Variables containing information regarding <form> subtree and elements associated with it.
57854                These get updated as and when an element is added to the <form> subtree.
57855             2) Variables containing <form> submit state information.
57856             3) Flag to hold information if reset() has been called.
57857             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57858                be handled differently during creation of its renderer.
57859                This information is currently being updated only during the HTML tree construction phase.
57860             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57861
57862           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57863           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57864           being used(not set by any code).
57865
57866           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57867           during the cloning process.
57868
57869         (WebCore):
57870         * html/HTMLFormElement.h:
57871           Added copyNonAttributePropertiesFromElement() declaration.
57872
57873 2012-10-04  Dean Jackson  <dino@apple.com>
57874
57875         Attribute and Uniform variable names need translation in shader
57876         https://bugs.webkit.org/show_bug.cgi?id=70989
57877
57878         Reviewed by Tim Horton (and Darin Adler).
57879
57880         WebGL specifies some maximum lengths for variable names (attributes
57881         and uniforms). Also, some GL drivers have issues with long names. For
57882         that reason, ANGLE has an option to rewrite the shader, translating
57883         long names into short names. Turning this on helps shaders compile,
57884         but we need to keep a mapping between the original names and the
57885         translated names, so that we bind to the right location from user code
57886         (which won't ever see the translated source).
57887
57888         This provided an opportunity to clean up some other bits of code:
57889         CSS Filters examined the uniform names after a compilation; It can
57890         now use the variable name map. I also added a typedef for the
57891         HashMaps that keep the shader, the source code and the variable name
57892         mappings.
57893
57894         I also opened a followup bug to make sure these tables are deleted
57895         when the associated shaders (or linked programs) go away:
57896         https://bugs.webkit.org/show_bug.cgi?id=98204
57897
57898         Covered by existing tests (with some enhancements):
57899         - fast/canvas/webgl/attrib-location-length-limits.html:
57900         - fast/canvas/webgl/uniform-location-length-limits.html:
57901
57902         * platform/graphics/ANGLEWebKitBridge.cpp:
57903         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57904         or uniforms) from the newly compiled shader.
57905         (WebCore):
57906         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57907         * platform/graphics/ANGLEWebKitBridge.h:
57908         (WebCore::getUniforms): Deleted this method.
57909         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57910         (ANGLEWebKitBridge):
57911         * platform/graphics/GraphicsContext3D.h:
57912         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57913         holds the size, type and translated name of a symbol from a WebGL shader.
57914         (ShaderSourceEntry):
57915         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57916         of the translated source code and symbol mappings.
57917         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57918         get the member variable corresponding to the type of symbol you're asking fo.
57919         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57920         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57921         name which also produces a set of symbols to examine.
57922         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57923         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57924         in some extra compile options to do translation of long symbol names. Also fill the
57925         map of translated symbol names.
57926         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57927         (WebCore::GraphicsContext3D::compileShader):
57928         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57929         a shader symbol if it was translated during compilation.
57930         (WebCore):
57931         (WebCore::GraphicsContext3D::getAttribLocation):
57932         (WebCore::GraphicsContext3D::getShaderiv):
57933         (WebCore::GraphicsContext3D::getShaderInfoLog):
57934         (WebCore::GraphicsContext3D::getShaderSource):
57935         (WebCore::GraphicsContext3D::getUniformLocation):
57936
57937 2012-10-04  Alpha Lam  <hclam@chromium.org>
57938
57939         [skia] Drawing a subrect of bitmap image is misaligned
57940         https://bugs.webkit.org/show_bug.cgi?id=95121
57941
57942         Reviewed by Stephen White.
57943
57944         When drawing a subrect of BitmapImage and the subrect is not aligned
57945         to integer boundaries, skia expands it to the closest enclosing integer
57946         rectangle. This creates prominent rendering artifacts when an image
57947         is used as background and its sub-regions are invalidated frequently.
57948
57949         This patch fixes the problem by doing alignment to integer boundaries
57950         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57951
57952         A clip rect is applied to the canvas using original destination
57953         rectangle, while source and destination rectangles are enlarged
57954         appropriately to ensure source rectangle is aligned.
57955
57956         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57957         resampling mode the previous algorithm applies different approximated
57958         scale factor for each scaled image fragment. This caused the stitched
57959         image to look ugly.
57960
57961         Scale factor is approximated using entire image size, this gives a
57962         more accurate approximation because of greater denominator and a
57963         consistent scale factor across all fragments.
57964
57965         Changes in Skia enable caching of the scaled image and return the
57966         scaled fragment because scale factor is now consistent for all
57967         fragments.
57968
57969         Tests: fast/images/paint-subrect-grid.html
57970                fast/images/paint-subrect.html
57971                fast/images/repaint-subrect-grid.html
57972
57973         * platform/graphics/skia/ImageSkia.cpp:
57974         (WebCore::computeResamplingMode): Use float for width and height.
57975         (WebCore):
57976         (WebCore::areBoundariesIntegerAligned):
57977         (WebCore::computeBitmapDrawRects):
57978         (WebCore::extractScaledImageFragment):
57979         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
57980         (WebCore::paintSkBitmap):
57981         (WebCore::Image::drawPattern):
57982         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
57983         (WebCore::BitmapImageSingleFrameSkia::draw):
57984         * platform/graphics/skia/NativeImageSkia.cpp:
57985         Changing the algorithm for extracting a scaled image fragment.
57986         A fragment is now identified by (scaledImageSize, scaledImageSubset).
57987         (WebCore::NativeImageSkia::hasResizedBitmap):
57988         (WebCore::NativeImageSkia::resizedBitmap):
57989         (WebCore::NativeImageSkia::shouldCacheResampling):
57990         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
57991         (WebCore):
57992         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
57993         (WebCore::NativeImageSkia::CachedImageInfo::set):
57994         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
57995         * platform/graphics/skia/NativeImageSkia.h:
57996         (NativeImageSkia):
57997         (CachedImageInfo):
57998
57999 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
58000
58001         ReplaceSelectionCommand should merge text nodes
58002         https://bugs.webkit.org/show_bug.cgi?id=98188
58003
58004         Reviewed by Levi Weintraub.
58005
58006         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
58007         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
58008
58009         This behavior change is tested by existing tests.
58010
58011         * editing/InsertParagraphSeparatorCommand.cpp:
58012         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
58013         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
58014         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
58015         the second half. So keep this position.
58016         * editing/ReplaceSelectionCommand.cpp:
58017         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
58018         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
58019         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
58020         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
58021         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
58022         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
58023         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
58024         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
58025         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
58026         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
58027         positions were before or after the text node.
58028         * editing/ReplaceSelectionCommand.h:
58029         (ReplaceSelectionCommand):
58030
58031 2012-10-04  Tony Chang  <tony@chromium.org>
58032
58033         Fix <input type="month"> tests
58034         https://bugs.webkit.org/show_bug.cgi?id=98426
58035
58036         Reviewed by Ojan Vafai.
58037
58038         The month picker uses flexbox and assumes that it will be aligned with
58039         the last line box. This looks visually correct. I will follow up on
58040         www-style to see what the expected behavior is.
58041
58042         Tests: fast/forms/month-multiple-fields tests cover this.
58043
58044         * rendering/RenderFlexibleBox.cpp:
58045         * rendering/RenderFlexibleBox.h:
58046
58047 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58048
58049         Unreviewed, rolling out r130396.
58050         http://trac.webkit.org/changeset/130396
58051         https://bugs.webkit.org/show_bug.cgi?id=98421
58052
58053         This patch is causing crashes on 4 tests on Lion Debug and
58054         Mountain Lion Debug (Requested by jernoble on #webkit).
58055
58056         * rendering/RenderLayerCompositor.cpp:
58057         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58058         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58059         * rendering/RenderLayerCompositor.h:
58060         * testing/InternalSettings.cpp:
58061         (WebCore::InternalSettings::Backup::Backup):
58062         (WebCore::InternalSettings::Backup::restoreTo):
58063         * testing/InternalSettings.h:
58064         (Backup):
58065
58066 2012-10-04  Tony Chang  <tony@chromium.org>
58067
58068         inline-flex baseline is sometimes wrong
58069         https://bugs.webkit.org/show_bug.cgi?id=96188
58070
58071         Reviewed by Ojan Vafai.
58072
58073         Implement the necessary methods to get the proper baseline alignment of flexbox.
58074         We were falling back to the inline-block behavior.
58075
58076         Test: css3/flexbox/flexbox-baseline.html
58077
58078         * rendering/RenderFlexibleBox.cpp:
58079         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
58080         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
58081         Mostly just the first line box baseline.
58082         (WebCore):
58083         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
58084         We actually don't want the last line, but the flexbox's baseline.
58085         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
58086         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
58087         first line so we don't have to re-compute this when getting the baseline.
58088         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
58089         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
58090         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
58091         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
58092
58093 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
58094
58095         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
58096         https://bugs.webkit.org/show_bug.cgi?id=98100
58097
58098         Reviewed by Stephen White.
58099
58100         At least on chromium-linux and chromium-android, unitsPerEm was not set
58101         according to the information in the font, causing at least problems in
58102         OpenTypeVerticalData when calculating vertical advance.
58103
58104         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58105
58106         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58107         (WebCore::SimpleFontData::platformInit):
58108
58109 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58110
58111         Standardize on "flush" terminology for compositing layer flushing/syncing
58112         https://bugs.webkit.org/show_bug.cgi?id=98321
58113
58114         Reviewed by Simon Fraser.
58115
58116         Rename compositing-related methods that refer to "syncing" to instead
58117         refer to "flushing".
58118
58119         * WebCore.exp.in:
58120         * loader/EmptyClients.h:
58121         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58122         * page/ChromeClient.h:
58123         (ChromeClient):
58124         * page/FrameView.cpp:
58125         (WebCore::FrameView::flushCompositingStateForThisFrame):
58126         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58127         (WebCore::FrameView::paintContents):
58128         * page/FrameView.h:
58129         (FrameView):
58130         * rendering/RenderLayerCompositor.cpp:
58131         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58132         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58133
58134 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58135
58136         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58137         https://bugs.webkit.org/show_bug.cgi?id=94397
58138
58139         Reviewed by Yury Semikhatsky.
58140
58141         Internal property access is built from Injected Script to V8 debug API. JSC binding
58142         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58143
58144         Test: inspector-protocol/runtime-getProperties.html
58145
58146         * bindings/js/JSInjectedScriptHostCustom.cpp:
58147         (WebCore::JSInjectedScriptHost::getInternalProperties):
58148         (WebCore):
58149         * bindings/v8/DebuggerScript.js:
58150         * bindings/v8/ScriptDebugServer.cpp:
58151         (WebCore::ScriptDebugServer::getInternalProperties):
58152         (WebCore):
58153         * bindings/v8/ScriptDebugServer.h:
58154         (ScriptDebugServer):
58155         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58156         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58157         (WebCore):
58158         * inspector/InjectedScript.cpp:
58159         (WebCore::InjectedScript::getInternalProperties):
58160         (WebCore):
58161         * inspector/InjectedScript.h:
58162         (InjectedScript):
58163         * inspector/InjectedScriptHost.idl:
58164         * inspector/InjectedScriptSource.js:
58165         (.):
58166         * inspector/Inspector.json:
58167         * inspector/InspectorRuntimeAgent.cpp:
58168         (WebCore::InspectorRuntimeAgent::getProperties):
58169         * inspector/InspectorRuntimeAgent.h:
58170         (InspectorRuntimeAgent):
58171
58172 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58173
58174         Fixed position visibility check does not consider descendants
58175         https://bugs.webkit.org/show_bug.cgi?id=98144
58176
58177         Reviewed by Simon Fraser.
58178
58179         The check against creating composition layers for invisible fixed positioned
58180         elements is too aggressive in that it does not consider descendants of the
58181         fixed positioned element that may be visible even though the element itself is
58182         out of view.
58183
58184         Fix the problem by calculating the true composited bounds of the fixed
58185         element instead of just using the size of the fixed layer. Because calculating
58186         the true bounds may be expensive, it is only done if the fixed layer itself is
58187         invisible.
58188
58189         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58190
58191         * rendering/RenderLayerCompositor.cpp:
58192         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58193         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58194         * rendering/RenderLayerCompositor.h:
58195
58196 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58197
58198         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58199         https://bugs.webkit.org/show_bug.cgi?id=98385
58200
58201         Reviewed by Pavel Feldman.
58202
58203         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58204         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58205         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58206         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58207
58208         * inspector/front-end/BreakpointManager.js:
58209         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58210         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58211         * inspector/front-end/JavaScriptSource.js:
58212         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58213         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58214         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58215         * inspector/front-end/JavaScriptSourceFrame.js:
58216         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58217         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58218         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58219         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58220         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58221         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58222         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58223         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58224         * inspector/front-end/ResourceScriptMapping.js:
58225         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58226         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58227         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58228         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58229         * inspector/front-end/ScriptSnippetModel.js:
58230         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58231         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58232         * inspector/front-end/ScriptsPanel.js:
58233         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58234         * inspector/front-end/UISourceCode.js:
58235         (WebInspector.UISourceCode.prototype.formatted):
58236
58237 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58238
58239         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58240         https://bugs.webkit.org/show_bug.cgi?id=98402
58241
58242         Reviewed by Pavel Feldman.
58243
58244         Scripts panel does not automatically switch to snippet evaluation when
58245         one edits previously evaluated snippet.
58246
58247         * inspector/front-end/ScriptSnippetModel.js:
58248         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58249         * inspector/front-end/ScriptsPanel.js:
58250         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58251
58252 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58253
58254         Don't allow to disable compositing in forced compositing mode
58255         https://bugs.webkit.org/show_bug.cgi?id=98048
58256
58257         Reviewed by Jocelyn Turcotte.
58258
58259         Make forced compositing mode imply accelerated compositing. This will
58260         avoid unexpected situations for platforms that don't want to support
58261         the non-accelerated rendering path.
58262
58263         Covered by existing tests.
58264
58265         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58266         because it has been deinlined.
58267         * page/Settings.cpp:
58268         (WebCore::Settings::setAcceleratedCompositingEnabled):
58269         (WebCore::Settings::setForceCompositingMode):
58270         (WebCore):
58271         * page/Settings.h:
58272         (Settings):
58273         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58274
58275 2012-10-04  Harald Alvestrand  <hta@google.com>
58276
58277         Change RTCPeerConnection GetStats to use Date timestamp format
58278         https://bugs.webkit.org/show_bug.cgi?id=98263
58279
58280         Reviewed by Yury Semikhatsky.
58281
58282         Tested by extension to RTCPeerConnection-stats test.
58283
58284         * Modules/mediastream/RTCStatsElement.cpp:
58285         (WebCore::RTCStatsElement::create):
58286         (WebCore::RTCStatsElement::RTCStatsElement):
58287         * Modules/mediastream/RTCStatsElement.h: long -> double
58288         (RTCStatsElement):
58289         (WebCore::RTCStatsElement::timestamp):
58290         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58291         * Modules/mediastream/RTCStatsReport.cpp:
58292         (WebCore::RTCStatsReport::addElement):
58293         * Modules/mediastream/RTCStatsReport.h:
58294         (RTCStatsReport):
58295         * Modules/mediastream/RTCStatsResponse.cpp:
58296         (WebCore::RTCStatsResponse::addElement):
58297         * Modules/mediastream/RTCStatsResponse.h:
58298         (RTCStatsResponse):
58299         * platform/chromium/support/WebRTCStatsResponse.cpp:
58300         (WebKit::WebRTCStatsResponse::addElement):
58301         * platform/mediastream/RTCStatsResponseBase.h:
58302         (RTCStatsResponseBase):
58303
58304 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58305
58306         Unreviewed, rolling out r130377.
58307         http://trac.webkit.org/changeset/130377
58308         https://bugs.webkit.org/show_bug.cgi?id=98392
58309
58310         Chromium Win compilation is broken (Requested by yurys on
58311         #webkit).
58312
58313         * Modules/mediastream/RTCStatsElement.cpp:
58314         (WebCore::RTCStatsElement::create):
58315         (WebCore::RTCStatsElement::RTCStatsElement):
58316         * Modules/mediastream/RTCStatsElement.h:
58317         (RTCStatsElement):
58318         (WebCore::RTCStatsElement::timestamp):
58319         * Modules/mediastream/RTCStatsElement.idl:
58320         * Modules/mediastream/RTCStatsReport.cpp:
58321         (WebCore::RTCStatsReport::addElement):
58322         * Modules/mediastream/RTCStatsReport.h:
58323         (RTCStatsReport):
58324         * Modules/mediastream/RTCStatsResponse.cpp:
58325         (WebCore::RTCStatsResponse::addElement):
58326         * Modules/mediastream/RTCStatsResponse.h:
58327         (RTCStatsResponse):
58328         * platform/chromium/support/WebRTCStatsResponse.cpp:
58329         (WebKit::WebRTCStatsResponse::addElement):
58330         * platform/mediastream/RTCStatsResponseBase.h:
58331         (RTCStatsResponseBase):
58332
58333 2012-10-04  Harald Alvestrand  <hta@google.com>
58334
58335         Change RTCPeerConnection GetStats to use Date timestamp format
58336         https://bugs.webkit.org/show_bug.cgi?id=98263
58337
58338         Reviewed by Adam Barth.
58339
58340         Tested by extension to RTCPeerConnection-stats test.
58341
58342         * Modules/mediastream/RTCStatsElement.cpp:
58343         (WebCore::RTCStatsElement::create):
58344         (WebCore::RTCStatsElement::RTCStatsElement):
58345         * Modules/mediastream/RTCStatsElement.h: long -> double
58346         (RTCStatsElement):
58347         (WebCore::RTCStatsElement::timestamp):
58348         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58349         * Modules/mediastream/RTCStatsReport.cpp:
58350         (WebCore::RTCStatsReport::addElement):
58351         * Modules/mediastream/RTCStatsReport.h:
58352         (RTCStatsReport):
58353         * Modules/mediastream/RTCStatsResponse.cpp:
58354         (WebCore::RTCStatsResponse::addElement):
58355         * Modules/mediastream/RTCStatsResponse.h:
58356         (RTCStatsResponse):
58357         * platform/chromium/support/WebRTCStatsResponse.cpp:
58358         (WebKit::WebRTCStatsResponse::addElement):
58359         * platform/mediastream/RTCStatsResponseBase.h:
58360         (RTCStatsResponseBase):
58361
58362 2012-10-05  Kent Tamura  <tkent@chromium.org>
58363
58364         [Chromium] Enable the multiple fields UI for input[type=date]
58365         https://bugs.webkit.org/show_bug.cgi?id=98351
58366
58367         Reviewed by Hajime Morita.
58368
58369         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58370         issues.
58371
58372         No new tests. Many tests will be landed shortly.
58373
58374         * html/DateInputType.cpp:
58375         * html/DateInputType.h:
58376
58377 2012-10-04  Kent Tamura  <tkent@chromium.org>
58378
58379         Add code for input[type=date] with the multiple fields UI
58380         https://bugs.webkit.org/show_bug.cgi?id=98340
58381
58382         Reviewed by Hajime Morita.
58383
58384         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58385         moment, there are no platforms enabling the new code. We're going to
58386         enable it soon on desktop Chromium, and add tests. Then we're going to
58387         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58388
58389         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58390         is represetnted as a kind of text field, and it has code to invoke a
58391         calendar picker.
58392         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58393         support + text field UI of input[type=date]. Now it means only calendar
58394         picker support.
58395
58396         * html/DateInputType.h:
58397         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58398         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58399         for multiple fields UI.
58400         (DateInputType): Wrap the code for text fields behavior and calendar
58401         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58402         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58403         * html/DateInputType.cpp:
58404         (WebCore::DateInputType::DateInputType):
58405         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58406         (WebCore): ditto.
58407         (WebCore::DateInputType::formatDateTimeFieldsState):
58408         A callback for multiple fields UI. This constructs a string value from
58409         each of values of multiple fields.
58410         Note that we don't need to do +1 to month().
58411         (WebCore::DateInputType::setupLayoutParameters):
58412         A callback for multiple fields UI. Passes information to build UI.
58413
58414         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58415         (BaseMultipleFieldsDateAndTimeInputType):
58416         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58417         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58418         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58419         Initialize m_pickerIndicatorIsAlwaysVisible.
58420         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58421         If a type supports calendar picker, we should always show the picker
58422         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58423         RenderTheme for support status of each of types.
58424         Add a local variable 'document' to avoid multiple element()->document().
58425         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58426         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58427         - Wrap the code with appropriate flags.
58428
58429         * rendering/RenderTheme.h:
58430         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58431         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58432         * rendering/RenderThemeChromiumMac.mm:
58433         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58434         Added. Delegate to RenderThemeChromiumCommon.
58435         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58436         * rendering/RenderThemeChromiumSkia.cpp:
58437         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58438         Added. Delegate to RenderThemeChromiumCommon.
58439         * rendering/RenderThemeChromiumCommon.h:
58440         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58441         * rendering/RenderThemeChromiumCommon.cpp:
58442         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58443         Returns true if the type is "date."
58444
58445         * html/DateTimeFieldsState.h:
58446         (DateTimeFieldsState): Add a comment for the m_month field.
58447
58448 2012-10-04  Kent Tamura  <tkent@chromium.org>
58449
58450         DateTimeYearFieldElement should respect min/max values specified by page authors
58451         https://bugs.webkit.org/show_bug.cgi?id=98227
58452
58453         Reviewed by Hajime Morita.
58454
58455         Before this patch, we always set 1 to the minimum limit and 275760 to
58456         the maximum limit for a year field, and a user can specify any year
58457         regardless of min/max attributes. Such wide range is unnecessary for
58458         normal applications and we should provide a way to limit the range.
58459
58460         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58461
58462         * html/shadow/DateTimeFieldElements.h:
58463         To add four constructor arguments, introduce Parameters struct.
58464         Actually, we add the followings;
58465          - minimum year in UI
58466          - maximum year in UI
58467          - min attribute is specified
58468          - max attribute is specified
58469         (Parameters):
58470         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58471         (DateTimeYearFieldElement):
58472         * html/shadow/DateTimeFieldElements.cpp:
58473         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58474         (WebCore::DateTimeYearFieldElement::create): ditto.
58475         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58476         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58477         By this, we allow to set out-of-range year values.
58478         (WebCore::currentFullYear): A helper to get the current year.
58479         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58480         If the field has no value and step down operation occurs,
58481          - the field has the current year if the max attribute is not specified.
58482          - the field has the maximum value otherwise.
58483         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58484
58485         * html/shadow/DateTimeNumericFieldElement.h:
58486         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58487         * html/shadow/DateTimeNumericFieldElement.cpp:
58488         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58489         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58490         Call clampValueForHardLimits instead of clampValue in order to
58491         distinguish limits for UI and limits for internal value update.
58492
58493         * html/shadow/DateTimeEditElement.h:
58494         (LayoutParameters): Add minimumYear and maximumYear members.
58495         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58496         Initialize minimumYear and maximumYear.
58497         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58498         Represents 'undefined' value for minimumYear and maximumYear.
58499         * html/shadow/DateTimeEditElement.cpp:
58500         (WebCore::DateTimeEditBuilder::visitField):
58501         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58502
58503         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58504         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58505         A helper to get a year value from an attribute value string.
58506         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58507         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58508
58509         * html/DateTimeInputType.cpp:
58510         (WebCore::DateTimeInputType::setupLayoutParameters):
58511         Set LayoutParameters::minimumYear and maximumYear.
58512         * html/DateTimeLocalInputType.cpp:
58513         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58514         * html/MonthInputType.cpp:
58515         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58516         * html/WeekInputType.cpp:
58517         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58518
58519 2012-10-03  Adam Barth  <abarth@webkit.org>
58520
58521         Unreviewed. Fix parse error in vcproj file.
58522
58523         * WebCore.vcproj/WebCore.vcproj:
58524
58525 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58526
58527         Implement localizeValue for TimeInputType
58528         https://bugs.webkit.org/show_bug.cgi?id=98237
58529
58530         Reviewed by Kent Tamura.
58531
58532         We want to localize time values for the suggestion picker.
58533         DateTimeStringBuilder parses a format and creates a formatted string.
58534
58535         Added chromium unit test LocaleMacTest.formatTime
58536
58537         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58538         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58539         (WebCore):
58540         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58541         (BaseMultipleFieldsDateAndTimeInputType):
58542         * html/DateTimeInputType.cpp:
58543         (WebCore::DateTimeInputType::setupLayoutParameters):
58544         * html/DateTimeLocalInputType.cpp:
58545         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58546         * html/TimeInputType.cpp:
58547         (WebCore::TimeInputType::localizeValue):
58548         (WebCore):
58549         (WebCore::TimeInputType::setupLayoutParameters):
58550         * html/TimeInputType.h:
58551         (TimeInputType):
58552         * html/shadow/DateTimeEditElement.cpp:
58553         (WebCore):
58554         * html/shadow/DateTimeEditElement.h:
58555         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58556         * platform/text/LocaleICU.cpp:
58557         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58558         * platform/text/LocaleICU.h:
58559         (LocaleICU):
58560         * platform/text/LocaleWin.cpp:
58561         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58562         * platform/text/LocaleWin.h:
58563         (LocaleWin):
58564         * platform/text/LocaleNone.cpp:
58565         (LocaleNone):
58566         (WebCore::LocaleNone::formatDateTime):
58567         * platform/text/Localizer.cpp:
58568         (DateTimeStringBuilder):
58569         (WebCore):
58570         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58571         Localizer pointer. This is used inside the Localizer so the Localizer
58572         will out live the DateTimeStringBuilder.
58573         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58574         (WebCore::DateTimeStringBuilder::zeroPadString):
58575         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58576         (WebCore::DateTimeStringBuilder::visitField):
58577         (WebCore::DateTimeStringBuilder::visitLiteral):
58578         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58579         (WebCore::Localizer::formatDateTime):
58580         * platform/text/Localizer.h:
58581         * platform/text/mac/LocaleMac.h:
58582         (LocaleMac):
58583         * platform/text/mac/LocaleMac.mm:
58584         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58585
58586 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58587
58588         Chromium needs support for border radius clipping
58589         https://bugs.webkit.org/show_bug.cgi?id=69866
58590
58591         Reviewed by Stephen White.
58592
58593         Changes to make this suitably efficient have already landed upstream in skia:
58594         http://code.google.com/p/skia/source/detail?r=2924
58595
58596         Covered by existing tests.
58597
58598         * rendering/RenderLayer.cpp:
58599
58600 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58601
58602         Simplify attribute access in Element::computeInheritedLanguage
58603         https://bugs.webkit.org/show_bug.cgi?id=98327
58604
58605         Reviewed by Andreas Kling.
58606
58607         * dom/Element.cpp:
58608         (WebCore::Element::computeInheritedLanguage):
58609         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58610         and do a bunch of useless operation on AtomicString.
58611
58612         By using ElementAttributeData directly, we can cut it to the two important branch.
58613
58614 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58615
58616         Fix unused parameter compile warnings.
58617         https://bugs.webkit.org/show_bug.cgi?id=98243
58618
58619         Reviewed by Alexey Proskuryakov.
58620
58621         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58622
58623         * plugins/PluginDebug.cpp:
58624         (WebCore::prettyNameForNPPVariable):
58625         * plugins/npapi.cpp:
58626         (NPN_MemFlush):
58627         (NPN_RequestRead):
58628         (NPN_GetJavaPeer):
58629
58630 2012-10-03  Adam Barth  <abarth@webkit.org>
58631
58632         Measure the usage of WebSQLDatabase
58633         https://bugs.webkit.org/show_bug.cgi?id=98330
58634
58635         Reviewed by Ojan Vafai.
58636
58637         WebKit is the only engine that implements WebSQLDatabase. This patch
58638         causes us to measure its usage so we can see how quickly web sites move
58639         to IndexedDB.
58640
58641         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58642         * page/FeatureObserver.h:
58643
58644 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58645
58646         [soup] WebKit crashes when doing a http request
58647         https://bugs.webkit.org/show_bug.cgi?id=98055
58648
58649         Reviewed by Martin Robinson.
58650
58651         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58652         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58653         calling soup_add_timeout with a 0 value.
58654
58655         Also, if resource handle is deleted before "request-started" signal is
58656         emitted, soupMessage handle points to a deleted object, and a crash
58657         occurs. So, reset soupMessage handle data in
58658         cleanupSoupRequestOperation so it won't happen anymore.
58659
58660         Lastly, if timeout occurs before request is completed, handle is
58661         deleted, and crash occurs in sendRequestCallback due to an early
58662         destroyed handle. To avoid that, call handle->cancel in
58663         requestTimeoutCallback. There is no need to call
58664         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58665         sendRequestCallback, and as handle is deleted,
58666         cleanupSoupRequestOperation will be called automatically.
58667
58668         No new tests yet, tests will be added with the patch in bug 74802.
58669
58670         * platform/network/ResourceRequestBase.cpp:
58671         (WebCore):
58672         * platform/network/soup/ResourceHandleSoup.cpp:
58673         (WebCore::cleanupSoupRequestOperation):
58674         (WebCore::ResourceHandle::platformSetDefersLoading):
58675         (WebCore::requestTimeoutCallback):
58676
58677 2012-10-03  Adam Barth  <abarth@webkit.org>
58678
58679         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58680         https://bugs.webkit.org/show_bug.cgi?id=98301
58681
58682         Reviewed by Eric Seidel.
58683
58684         According to anonymous usage statistics, the APIs guarded by
58685         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58686         web pages. Given that this feature is only enabled in GTK and Chromium,
58687         it seems likely that we should remove it.
58688
58689         * CMakeLists.txt:
58690         * DerivedSources.make:
58691         * DerivedSources.pri:
58692         * GNUmakefile.features.am:
58693         * GNUmakefile.list.am:
58694         * WebCore.gypi:
58695         * WebCore.xcodeproj/project.pbxproj:
58696         * fileapi/WebKitBlobBuilder.idl: Removed.
58697         * page/DOMWindow.idl:
58698
58699 2012-10-03  Beth Dakin  <bdakin@apple.com>
58700
58701         https://bugs.webkit.org/show_bug.cgi?id=98313
58702         ScrollingStateNode should keep a Vector of children instead of child 
58703         pointers
58704
58705         Reviewed by Simon Fraser.
58706
58707         This patch re-names ScrollingStateNode::cloneNode() to 
58708         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58709         change properties of the current node after cloning it, and it also 
58710         takes care of cloning children, which the old function did not do.
58711
58712         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58713         instead.
58714         * page/scrolling/ScrollingStateNode.cpp:
58715         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58716         (WebCore::ScrollingStateNode::appendChild):
58717         * page/scrolling/ScrollingStateNode.h:
58718         (ScrollingStateNode):
58719         (WebCore::ScrollingStateNode::parent):
58720         (WebCore::ScrollingStateNode::setParent):
58721
58722         Reset the change properties and clone children in cloneAndResetNode()
58723         * page/scrolling/ScrollingStateScrollingNode.cpp:
58724         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58725         * page/scrolling/ScrollingStateScrollingNode.h:
58726
58727         Yay, this function can be vastly simplified now that we don't have 
58728         those messy child and sibling pointers.
58729         * page/scrolling/ScrollingStateTree.cpp:
58730         (WebCore::ScrollingStateTree::commit):
58731
58732 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58733
58734         Replace uses of -webkit-box-sizing with box-sizing
58735         https://bugs.webkit.org/show_bug.cgi?id=98312
58736
58737         Reviewed by Tony Chang.
58738
58739         No need to use the prefixed version when the unprefixed works the same.
58740         No new tests since there's no change in behavior..
58741
58742         * css/html.css:
58743
58744 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58745
58746         IndexedDB: Don't do full commit for empty transactions
58747         https://bugs.webkit.org/show_bug.cgi?id=89239
58748
58749         Reviewed by Tony Chang.
58750
58751         Don't bother creating a leveldb write batch if there's nothing in the transaction
58752         to commit. Note that a read-only transaction may still have index cleanup so may
58753         not be an empty transaction.
58754
58755         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58756         from 70s to 2s.
58757
58758         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58759
58760         * platform/leveldb/LevelDBTransaction.cpp:
58761         (WebCore::LevelDBTransaction::commit):
58762
58763 2012-10-03  Adam Klein  <adamk@chromium.org>
58764
58765         Remove bogus FIXME from Document.idl
58766         https://bugs.webkit.org/show_bug.cgi?id=98302
58767
58768         Reviewed by Adam Barth.
58769
58770         The FIXME claimed that document.body throwing an exception was not
58771         specced, but in fact it is:
58772         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58773
58774         * dom/Document.idl:
58775
58776 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58777
58778         IndexedDB: Memory leak when deleting object stores with indexes
58779         https://bugs.webkit.org/show_bug.cgi?id=98292
58780
58781         Reviewed by Tony Chang.
58782
58783         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58784         broken when the transaction completes (and the spec allows traversal to fail).
58785         Deleted stores need to have the reference cycle broken too.
58786
58787         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58788
58789         * Modules/indexeddb/IDBTransaction.cpp:
58790         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58791         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58792         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58793
58794 2012-10-03  Adam Barth  <abarth@webkit.org>
58795
58796         CSSNamespace.h is empty and should be deleted
58797         https://bugs.webkit.org/show_bug.cgi?id=98304
58798
58799         Reviewed by Eric Seidel.
58800
58801         There's no reason to have this file in the repository.
58802
58803         * GNUmakefile.list.am:
58804         * WebCore.gypi:
58805         * WebCore.vcproj/WebCore.vcproj:
58806         * WebCore.xcodeproj/project.pbxproj:
58807         * css/CSSNamespace.h: Removed.
58808
58809 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58810
58811         Build failure with css filters enabled and accelerated compositing disabled
58812         https://bugs.webkit.org/show_bug.cgi?id=95908
58813
58814         Reviewed by Tony Chang.
58815
58816         Do not try to setBackingNeedsRepaint when building without accelerated
58817         compositing.
58818
58819         Also, allow painting with filter (paintsWithFilters returns true if
58820         renderer has filter) when accelerated compositing is not enabled.
58821
58822         No functional change, so no new tests.
58823
58824         * rendering/RenderLayer.cpp:
58825         (WebCore::RenderLayer::styleChanged):
58826
58827 2012-10-03  Emil A Eklund  <eae@chromium.org>
58828
58829         Round image sizes when zooming
58830         https://bugs.webkit.org/show_bug.cgi?id=98205
58831
58832         Reviewed by Eric Seidel.
58833
58834         We currently floor image sizes when zooming which can result in
58835         images being rendered at one pixel less than the actual size.
58836         This is especially likely to happen for very large images.
58837
58838         Test: fast/sub-pixel/zoomed-image-tiles.html
58839
58840         * loader/cache/CachedImage.cpp:
58841         (WebCore::CachedImage::imageSizeForRenderer):
58842
58843 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58844
58845         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58846         https://bugs.webkit.org/show_bug.cgi?id=98186
58847
58848         Reviewed by Noam Rosenthal.
58849
58850         Remove the implicit conversion from WebCore::FloatSize to QSize.
58851
58852         * platform/graphics/FloatSize.h:
58853         (FloatSize):
58854
58855 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58856
58857         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58858         https://bugs.webkit.org/show_bug.cgi?id=97484
58859
58860         Reviewed by Eric Seidel.
58861
58862         When in compositing mode, layer painting can be triggered through the backing store. When this
58863         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58864         the proper sub-pixel accumulation through layers to their children, but since we're not
58865         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58866         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58867         past the listed root layer.
58868
58869         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58870         offset to avoid moving objects around.
58871
58872         * rendering/RenderLayer.cpp:
58873         (WebCore::RenderLayer::paintLayerContents):
58874
58875 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58876
58877         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58878         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58879         https://bugs.webkit.org/show_bug.cgi?id=93292
58880
58881         Reviewed by James Robinson.
58882
58883         Tests:  Existing page-scale layout tests.
58884
58885         * page/Frame.cpp:
58886         (WebCore::Frame::frameScaleFactor):
58887         * page/Settings.cpp:
58888         (WebCore::Settings::Settings):
58889         * page/Settings.h:
58890         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58891         (WebCore::Settings::applyPageScaleFactorInCompositor):
58892         (Settings):
58893
58894 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58895
58896         Font data is purged while fonts are still using it
58897         https://bugs.webkit.org/show_bug.cgi?id=93640
58898
58899         Reviewed by Eric Seidel.
58900
58901         Move the handling of custom font pruning from Document to FontFallbackList.
58902         The previous inplementation allowed fonts to be removed before all their
58903         clients were done. This change moves handling of custom font purging to the
58904         FontFallbackList class, which is the shared object that is only removed
58905         when all clients of a font are done with it. This fixes a crash in Angry
58906         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58907
58908         The specific element that causes problems is:
58909         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58910           src="http://chrome.angrybirds.com/ingame_graphic.html"
58911           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58912           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58913           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58914           300; overflow: hidden; visibility: visible;"></iframe>
58915         The source document uses the same font as the embedding document.
58916
58917         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58918                fast/frames/seamless/seamless-nested-crash.html
58919
58920         * css/CSSFontFaceSource.cpp:
58921         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58922         * css/CSSSegmentedFontFace.cpp:
58923         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58924         * dom/Document.cpp:
58925         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58926         (WebCore):
58927         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58928         * dom/Document.h:
58929         (WebCore):
58930         (Document): Remove method declarations for custom font handling.
58931         * platform/graphics/FontFallbackList.h:
58932         (FontFallbackList): Moved some code around and made non-copyable.
58933         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58934         (WebCore::FontFallbackList::setGlyphPages): Moved.
58935         * platform/graphics/GlyphPageTreeNode.cpp:
58936         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58937         * platform/graphics/SegmentedFontData.cpp:
58938         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58939         * platform/graphics/SimpleFontData.cpp:
58940         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58941
58942 2012-10-03  Adam Barth  <abarth@webkit.org>
58943
58944         Crash when calling document.open during unload
58945         https://bugs.webkit.org/show_bug.cgi?id=98287
58946
58947         Reviewed by Nate Chapin.
58948
58949         Calling document.open results in us nulling out m_documentLoader. This
58950         code doesn't properly handle that case and crashes.
58951
58952         Test: fast/parser/document-open-in-unload.html
58953
58954         * loader/FrameLoader.cpp:
58955         (WebCore::FrameLoader::commitProvisionalLoad):
58956
58957 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58958
58959         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58960         https://bugs.webkit.org/show_bug.cgi?id=98220
58961
58962         Reviewed by Andreas Kling.
58963
58964         * dom/Element.cpp:
58965         (WebCore::Element::computeInheritedLanguage):
58966         The condition is never false on the first execution. Move the condition to the
58967         end of the loop for fun and profit.
58968
58969 2012-10-03  Hans Wennborg  <hans@chromium.org>
58970
58971         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
58972         https://bugs.webkit.org/show_bug.cgi?id=98279
58973
58974         Reviewed by Adam Barth.
58975
58976         Add the interimResults attribute and pass it to the embedder. It was
58977         added to the spec draft in
58978         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
58979
58980         Tested in fast/speech/scripted/basics.html
58981
58982         * Modules/speech/SpeechRecognition.cpp:
58983         (WebCore::SpeechRecognition::start):
58984         (WebCore::SpeechRecognition::SpeechRecognition):
58985         * Modules/speech/SpeechRecognition.h:
58986         (WebCore::SpeechRecognition::interimResults):
58987         (WebCore::SpeechRecognition::setInterimResults):
58988         * Modules/speech/SpeechRecognition.idl:
58989         * Modules/speech/SpeechRecognitionClient.h:
58990         (SpeechRecognitionClient):
58991         * Modules/speech/SpeechRecognitionController.h:
58992         (WebCore::SpeechRecognitionController::start):
58993
58994 2012-10-03  Hans Wennborg  <hans@chromium.org>
58995
58996         Speech JavaScript API: Remove resultdeleted event
58997         https://bugs.webkit.org/show_bug.cgi?id=98272
58998
58999         Reviewed by Adam Barth.
59000
59001         Remove the resultdeleted event. This was never used, and was removed
59002         from the spec draft in
59003         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
59004
59005         The fast/speech/scripted/basics.html test is updated to reflect this.
59006
59007         * Modules/speech/SpeechRecognition.cpp:
59008         * Modules/speech/SpeechRecognition.h:
59009         (SpeechRecognition):
59010         * Modules/speech/SpeechRecognition.idl:
59011         * Modules/speech/SpeechRecognitionEvent.cpp:
59012         * Modules/speech/SpeechRecognitionEvent.h:
59013         (SpeechRecognitionEvent):
59014         * dom/EventNames.h:
59015         (WebCore):
59016
59017 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
59018
59019         Delayed structure sweep can leak structures without bound
59020         https://bugs.webkit.org/show_bug.cgi?id=96546
59021
59022         Reviewed by Geoffrey Garen.
59023
59024         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
59025         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
59026         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
59027         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
59028         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
59029         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
59030
59031         No new tests.
59032
59033         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
59034         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
59035         (JSDOMWrapper):
59036         (WebCore::JSDOMWrapper::JSDOMWrapper):
59037         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
59038         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
59039         (GenerateHeader):
59040         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
59041         (ObjcFallbackObjectImp):
59042         * bridge/objc/objc_runtime.mm:
59043         (Bindings):
59044         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
59045         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
59046         (JSC):
59047         (JSC::RuntimeArray::destroy):
59048         * bridge/runtime_array.h:
59049         (JSC::RuntimeArray::create):
59050         (JSC):
59051         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
59052         (Bindings):
59053         (JSC::Bindings::RuntimeObject::RuntimeObject):
59054         * bridge/runtime_object.h:
59055         (RuntimeObject):
59056
59057 2012-10-02  Anders Carlsson  <andersca@apple.com>
59058
59059         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
59060         https://bugs.webkit.org/show_bug.cgi?id=98217
59061
59062         Reviewed by Andreas Kling.
59063
59064         * WebCore.exp.in:
59065         * rendering/RenderLayerBacking.cpp:
59066         (WebCore::RenderLayerBacking::createGraphicsLayer):
59067         * rendering/RenderLayerCompositor.cpp:
59068         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
59069         (WebCore::RenderLayerCompositor::ensureRootLayer):
59070
59071 2012-10-03  Joshua Bell  <jsbell@chromium.org>
59072
59073         IndexedDB: Optimize encodeString/decodeString
59074         https://bugs.webkit.org/show_bug.cgi?id=97794
59075
59076         Reviewed by Tony Chang.
59077
59078         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
59079         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
59080         isn't sufficient, but the code used StringBuilder::append() character-by-character
59081         and custom byte-swapping which was slow.
59082
59083         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
59084         and putting it 20k times and getting it 20k times. On my test box, mean time before the
59085         patch was 8.2s, mean time after the patch was 4.6s.
59086
59087         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
59088
59089         * Modules/indexeddb/IDBLevelDBCoding.cpp:
59090         (WebCore::IDBLevelDBCoding::encodeString):
59091         (WebCore::IDBLevelDBCoding::decodeString):
59092
59093 2012-10-03  Keishi Hattori  <keishi@webkit.org>
59094
59095         Implement DataList UI for input type time on chromium
59096         https://bugs.webkit.org/show_bug.cgi?id=98240
59097
59098         Reviewed by Kent Tamura.
59099
59100         This adds datalist UI for input type time. We add the picker indicator to
59101         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59102         and picker indicator inside a new div element so we can position the picker
59103         indicator in the same place as input type=date.
59104
59105         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59106                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59107                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59108                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59109                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59110
59111         * css/html.css:
59112         (input::-webkit-date-and-time-container):
59113         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59114         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59115         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59116         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59117         (WebCore):
59118         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59119         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59120         this so the picker indicator is always visible.
59121         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59122         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59123         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59124         (WebCore):
59125         (BaseMultipleFieldsDateAndTimeInputType):
59126         * html/shadow/DateTimeFieldElement.cpp:
59127         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59128         * rendering/RenderThemeChromiumCommon.cpp:
59129         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59130
59131 2012-10-03  Andreas Kling  <kling@webkit.org>
59132
59133         Give CSSValueList backing vector an inline capacity.
59134         <http://webkit.org/b/98266>
59135         <rdar://problem/12421425>
59136
59137         Reviewed by Anders Carlsson.
59138
59139         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59140         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59141         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59142
59143         394kB progression on Membuster3.
59144
59145         * css/CSSValueList.h:
59146         (CSSValueList):
59147
59148 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59149
59150         Web Inspector: NMI: instrument NativeImageSkia.
59151         https://bugs.webkit.org/show_bug.cgi?id=96277
59152
59153         Reviewed by Yury Semikhatsky.
59154
59155         * platform/graphics/skia/NativeImageSkia.cpp:
59156         (WebCore::NativeImageSkia::reportMemoryUsage):
59157         (WebCore::reportMemoryUsage):
59158
59159 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59160
59161         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59162         https://bugs.webkit.org/show_bug.cgi?id=98255
59163
59164         Reviewed by Vsevolod Vlasov.
59165
59166         - Introduced DockController.js that covers the dock mechanics
59167         - Removed dock orientation from the settings
59168         - Storing the last dock option to present it as default
59169         - Simplified the multi-option status bar button
59170
59171         * WebCore.gypi:
59172         * WebCore.vcproj/WebCore.vcproj:
59173         * inspector/compile-front-end.py:
59174         * inspector/front-end/DockController.js: Added.
59175         (WebInspector.DockController):
59176         (WebInspector.DockController.prototype.get element):
59177         (WebInspector.DockController.prototype.setDocked.set if):
59178         (WebInspector.DockController.prototype.setDocked):
59179         (WebInspector.DockController.prototype.setDockingUnavailable):
59180         (WebInspector.DockController.prototype._updateUI.get states):
59181         (WebInspector.DockController.prototype._updateUI):
59182         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59183         (WebInspector.DockController.prototype._createDockOptions):
59184         (WebInspector.DockController.prototype._toggleDockState):
59185         (WebInspector.DockController.prototype.isCompactMode):
59186         (WebInspector.DockController.prototype.setCompactMode):
59187         * inspector/front-end/InspectorFrontendAPI.js:
59188         (InspectorFrontendAPI.setAttachedWindow):
59189         * inspector/front-end/InspectorFrontendHostStub.js:
59190         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59191         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59192         * inspector/front-end/Settings.js:
59193         * inspector/front-end/SettingsScreen.js:
59194         (WebInspector.GenericSettingsTab):
59195         * inspector/front-end/StatusBarButton.js:
59196         (WebInspector.StatusBarButton):
59197         * inspector/front-end/Toolbar.js:
59198         (WebInspector.Toolbar):
59199         (WebInspector.Toolbar.prototype.setCompactMode):
59200         (WebInspector.Toolbar.prototype._toolbarDragStart):
59201         (WebInspector.Toolbar.prototype._toolbarDrag):
59202         * inspector/front-end/WebKit.qrc:
59203         * inspector/front-end/externs.js:
59204         (WebInspector.toggleSearchingForNode):
59205         * inspector/front-end/inspector.css:
59206         (body.undocked.platform-mac-snowleopard #toolbar):
59207         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59208         * inspector/front-end/inspector.html:
59209         * inspector/front-end/inspector.js:
59210         (WebInspector._createGlobalStatusBarItems):
59211         (windowLoaded):
59212         (WebInspector.setDockingUnavailable):
59213         * inspector/front-end/inspectorCommon.css:
59214         (body.dock-to-right:not(.undocked)):
59215         (body.dock-to-right.inactive:not(.undocked)):
59216
59217 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59218
59219         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59220         https://bugs.webkit.org/show_bug.cgi?id=97272
59221
59222         Reviewed by Pavel Feldman.
59223
59224         This patch is based on patch by John J. Barton.
59225
59226         * inspector/front-end/JavaScriptSource.js:
59227         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59228
59229 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59230
59231         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59232         https://bugs.webkit.org/show_bug.cgi?id=98258
59233
59234         Reviewed by Vsevolod Vlasov.
59235
59236         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59237
59238         * inspector/front-end/elementsPanel.css:
59239         (#elements-content > ol):
59240
59241 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59242
59243         [EFL] Skeleton code of File system API.
59244         https://bugs.webkit.org/show_bug.cgi?id=91187
59245
59246         Reviewed by Gyuyoung Kim.
59247
59248         Add skeleton code of File System API on EFL port.
59249         Implementation patches will be created later.
59250
59251         No new tests because this is just skeleton code.
59252
59253         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59254         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59255         * platform/AsyncFileSystem.cpp:
59256         (WebCore):
59257         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59258         * platform/efl/AsyncFileSystemEfl.h: Added.
59259
59260 2012-10-03  Andreas Kling  <kling@webkit.org>
59261
59262         Shrink ElementRareData by moving bool flags to NodeRareData.
59263         <http://webkit.org/b/98225>
59264
59265         Reviewed by Antti Koivisto.
59266
59267         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59268         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59269         Also removed some double raredata hash lookups.
59270
59271         * dom/Element.cpp:
59272         (WebCore::Element::detach):
59273         (WebCore::Element::recalcStyle):
59274         (WebCore::Element::ensureShadow):
59275         (WebCore::Element::setStyleAffectedByEmpty):
59276         (WebCore::Element::styleAffectedByEmpty):
59277         (WebCore::Element::setIsInCanvasSubtree):
59278         (WebCore::Element::isInCanvasSubtree):
59279         (WebCore::Element::containsFullScreenElement):
59280         (WebCore::Element::setContainsFullScreenElement):
59281         * dom/ElementRareData.h:
59282         (ElementRareData):
59283         (WebCore::ElementRareData::ElementRareData):
59284         * dom/NodeRareData.h:
59285         (WebCore::NodeRareData::styleAffectedByEmpty):
59286         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59287         (WebCore::NodeRareData::isInCanvasSubtree):
59288         (WebCore::NodeRareData::setIsInCanvasSubtree):
59289         (NodeRareData):
59290         (WebCore::NodeRareData::containsFullScreenElement):
59291         (WebCore::NodeRareData::setContainsFullScreenElement):
59292
59293 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59294
59295         getComputedStyle perspective-origin is based on the wrong bounding box
59296         https://bugs.webkit.org/show_bug.cgi?id=98027
59297
59298         Reviewed by Simon Fraser.
59299
59300         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59301         wrong bounding box (sizingBox() which ends up as the contentbox).
59302
59303         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59304         what transform-origin already does.
59305
59306         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59307
59308         * css/CSSComputedStyleDeclaration.cpp:
59309         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59310
59311 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59312
59313         Build fix for WinCE after r130160.
59314
59315         * platform/graphics/FontFastPath.cpp:
59316         (WebCore::Font::glyphDataAndPageForCharacter):
59317
59318 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59319
59320         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59321         https://bugs.webkit.org/show_bug.cgi?id=98149
59322
59323         Reviewed by Adam Barth.
59324
59325         The chromium implementation needs to know which Frame created a PeerConnection so
59326         that the right housekeeping can take place correctly.
59327
59328         Not testable in DRT, but have verified the change manually and with our pyautotests.
59329
59330         * Modules/mediastream/RTCPeerConnection.cpp:
59331         (WebCore::RTCPeerConnection::RTCPeerConnection):
59332         * loader/FrameLoaderClient.h:
59333         (WebCore):
59334         (FrameLoaderClient):
59335         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59336         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59337         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59338         (WebCore):
59339         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59340         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59341         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59342         (RTCPeerConnectionHandlerChromium):
59343
59344 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59345
59346         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59347         https://bugs.webkit.org/show_bug.cgi?id=97890
59348
59349         Reviewed by Yury Semikhatsky.
59350
59351         Actual problem is that proxy loader is closed twice.
59352
59353         "_snapshotReceived" should never try to close receiver,
59354         because it is a callback fired by close.
59355
59356         Also minor glitches fixed:
59357          - taking snapshot shows "Loading..." status first,
59358         and then "Saving xxx%";
59359          - after all chunks are sent "Parsing" status is set and
59360         then is replaced with "Saving 100%";
59361          - removed dead code in proxy;
59362          - proxy was ignoring callback parameter;
59363          - "Loading %d\%" is not localized.
59364
59365         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59366         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59367         (WebInspector.HeapSnapshotLoaderProxy):
59368         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59369         interface-conformant.
59370         * inspector/front-end/HeapSnapshotView.js:
59371         (WebInspector.HeapProfileHeader): Fixed update-status and
59372         finish-transfer logic.
59373
59374 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59375
59376         Make sure that user gestures can't be consumed twice
59377         https://bugs.webkit.org/show_bug.cgi?id=97483
59378
59379         Reviewed by Adam Barth.
59380
59381         Instead of a simple counter, use a ref counted token to track how many
59382         user gestures happened and where consumed. When creating a timer that
59383         is supposed to forward the user gesture, take a reference to this token
59384         and reinstantiate the UserGestureIndicator with that token when the
59385         timer is triggered.
59386
59387         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59388                platform/chromium/fast/events/popup-forwarded-gesture.html
59389
59390         * dom/UserGestureIndicator.cpp:
59391         (WebCore):
59392         (WebCore::UserGestureIndicator::UserGestureIndicator):
59393         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59394         (WebCore::UserGestureIndicator::processingUserGesture):
59395         (WebCore::UserGestureIndicator::consumeUserGesture):
59396         (WebCore::UserGestureIndicator::currentToken):
59397         * dom/UserGestureIndicator.h:
59398         (Token):
59399         (WebCore::UserGestureIndicator::Token::~Token):
59400         (UserGestureIndicator):
59401         * page/DOMTimer.cpp:
59402         (WebCore::DOMTimer::DOMTimer):
59403         (WebCore::DOMTimer::fired):
59404         * page/DOMTimer.h:
59405         (DOMTimer):
59406
59407 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59408
59409         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59410         https://bugs.webkit.org/show_bug.cgi?id=98073
59411
59412         Reviewed by Hajime Morita.
59413
59414         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59415         doesn't try to access the container node while walking up the parent chain
59416         from one of the container node's children.
59417
59418         Test: accessibility/container-node-delete-causes-crash.html
59419
59420         * dom/ContainerNode.cpp:
59421         (WebCore::ContainerNode::~ContainerNode):
59422         * dom/Node.cpp:
59423         (WebCore::Node::~Node):
59424         * dom/Node.h:
59425         (WebCore::Node::document):
59426         (WebCore::Node::documentInternal):
59427
59428 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59429
59430         Web Inspector: SourceURL should be taken from debugger agent when possible.
59431         https://bugs.webkit.org/show_bug.cgi?id=98239
59432
59433         Reviewed by Yury Semikhatsky.
59434
59435         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59436         Alwys use the one from debugger agent now.
59437
59438         * inspector/InspectorDebuggerAgent.cpp:
59439         (WebCore::InspectorDebuggerAgent::didParseSource):
59440
59441 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59442
59443         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59444
59445         * page/FrameView.cpp:
59446         (WebCore):
59447
59448 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59449
59450         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59451         https://bugs.webkit.org/show_bug.cgi?id=98163
59452
59453         Reviewed by Yury Semikhatsky.
59454
59455         The text was changed to "Load Heap Snapshot..."
59456         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59457         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59458
59459         * English.lproj/localizedStrings.js:
59460         * inspector/front-end/ProfilesPanel.js:
59461         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59462         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59463
59464 2012-10-03  Harald Alvestrand  <hta@google.com>
59465
59466         Add data passing to the GetStats interface of RTCPeerConnection
59467         https://bugs.webkit.org/show_bug.cgi?id=98003
59468
59469         Reviewed by Adam Barth.
59470
59471         Added an RTCStatsResponseBase interface to platform, and let the
59472         RTCStatsRequestImpl class produce an implementation of it that's returned
59473         to WebCore.
59474
59475         Tested by extension of the RTCPeerConnection-stats.html test.
59476
59477         * Modules/mediastream/RTCStatsElement.cpp:
59478         (WebCore::RTCStatsElement::addStatistic):
59479         (WebCore):
59480         * Modules/mediastream/RTCStatsElement.h:
59481         (RTCStatsElement):
59482         * Modules/mediastream/RTCStatsReport.cpp:
59483         (WebCore):
59484         (WebCore::RTCStatsReport::addElement):
59485         (WebCore::RTCStatsReport::addStatistic):
59486         * Modules/mediastream/RTCStatsReport.h:
59487         (RTCStatsReport):
59488         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59489         (WebCore::RTCStatsRequestImpl::createResponse):
59490         (WebCore):
59491         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59492         * Modules/mediastream/RTCStatsRequestImpl.h:
59493         (RTCStatsRequestImpl):
59494         * Modules/mediastream/RTCStatsResponse.cpp:
59495         (WebCore::RTCStatsResponse::create):
59496         (WebCore::RTCStatsResponse::addReport):
59497         (WebCore):
59498         (WebCore::RTCStatsResponse::addElement):
59499         (WebCore::RTCStatsResponse::addStatistic):
59500         * Modules/mediastream/RTCStatsResponse.h:
59501         (RTCStatsResponse):
59502         * WebCore.gypi:
59503         * platform/chromium/support/WebRTCStatsRequest.cpp:
59504         (WebKit::WebRTCStatsRequest::response):
59505         (WebKit):
59506         (WebKit::WebRTCStatsRequest::requestSucceeded):
59507         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59508         (WebKit):
59509         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59510         (WebKit::WebRTCStatsResponse::assign):
59511         (WebKit::WebRTCStatsResponse::reset):
59512         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59513         (WebKit::WebRTCStatsResponse::addReport):
59514         (WebKit::WebRTCStatsResponse::addElement):
59515         (WebKit::WebRTCStatsResponse::addStatistic):
59516         * platform/mediastream/RTCStatsRequest.h:
59517         (WebCore):
59518         (RTCStatsRequest):
59519         * platform/mediastream/RTCStatsResponseBase.h: Added.
59520         (WebCore):
59521         (RTCStatsResponseBase):
59522         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59523
59524 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59525
59526         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59527         https://bugs.webkit.org/show_bug.cgi?id=97895
59528
59529         Reviewed by Martin Robinson.
59530
59531         * platform/network/NetworkingContext.h:
59532         (NetworkingContext): Add initiatingPageID().
59533         * platform/network/ResourceHandle.h:
59534         (ResourceHandle): Add static method
59535         getSoupRequestInitiaingPageID().
59536         * platform/network/ResourceHandleInternal.h:
59537         (ResourceHandleInternal): Add initiatingPageID().
59538         * platform/network/soup/ResourceHandleSoup.cpp:
59539         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59540         initiating page ID of the resource handle networking context.
59541         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59542         attach a page ID to a SoupRequest.
59543         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59544         to attch the initiating page ID to the SoupRequest.
59545         (WebCore::startNonHTTPRequest): Ditto.
59546         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59547         method to get the page ID attached to a SoupRequest.
59548
59549 2012-10-03  Kent Tamura  <tkent@chromium.org>
59550
59551         Introduce DateComponents::minimumYear and maximumYear
59552         https://bugs.webkit.org/show_bug.cgi?id=98230
59553
59554         Reviewed by Kentaro Hara.
59555
59556         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59557
59558         No new tests. This doesn't change any bahevior.
59559
59560         * platform/DateComponents.h:
59561         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59562         (WebCore::DateComponents::maximumYear): ditto.
59563         * platform/DateComponents.cpp:
59564         (WebCore): Move out static minimumYear and maximumYear.
59565         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59566         (WebCore::withinHTMLDateLimits): ditto.
59567         (WebCore::DateComponents::parseWeek): ditto.
59568         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59569         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59570
59571         * html/shadow/DateTimeFieldElements.cpp:
59572         (WebCore): Remove minimumYear and maximumYear.
59573         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59574         Use DateComponents::minimumYear and maximumYear.
59575
59576
59577 2012-10-02  Arko Saha  <arko@motorola.com>
59578
59579         Microdata: itemprop names must not override builtin properties.
59580         https://bugs.webkit.org/show_bug.cgi?id=98025
59581
59582         Reviewed by Kentaro Hara.
59583
59584         We should look in the prototype for functions before assuming it as
59585         an item's name. Return false if the prototype of the object has a
59586         property (function) with propertyName.
59587         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59588         Named property visibility algorithm:
59589         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59590         ...
59591         7. If the result of calling the [[HasProperty]] internal method on
59592         prototype with property name P is true, then return false.
59593         ...
59594         Also [OverrideBuiltins] is not declared for any of the properties,
59595         hence no overriding is allowed in this case.
59596
59597         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59598
59599         * bindings/scripts/CodeGeneratorJS.pm:
59600         (GenerateGetOwnPropertySlotBody):
59601         (GenerateGetOwnPropertyDescriptorBody):
59602
59603 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59604
59605         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59606         https://bugs.webkit.org/show_bug.cgi?id=98094
59607
59608         Reviewed by Kent Tamura.
59609
59610         We needed to reverse padding-left/right when rtl.
59611
59612         No new tests. Covered by date-suggestion-picker-appearance.html.
59613
59614         * Resources/pagepopups/suggestionPicker.css:
59615         (.suggestion-list-entry .label):
59616         (.rtl .suggestion-list-entry .label):
59617
59618 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59619
59620         Provide memory instrumentation for HashCountedSet
59621         https://bugs.webkit.org/show_bug.cgi?id=98138
59622
59623         Reviewed by Pavel Feldman.
59624
59625         Replaced addHashCountedSet calls with addMember that now automatically
59626         detects HashCountedSet and calls appropriate routine.
59627
59628         * css/CSSImageGeneratorValue.cpp:
59629         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59630         * loader/cache/CachedResource.cpp:
59631
59632 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59633
59634         Buildfix after r130235.
59635
59636         Reviewed by Csaba Osztrogonác.
59637
59638         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59639         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59640
59641         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59642
59643 2012-10-02  Kent Tamura  <tkent@chromium.org>
59644
59645         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59646
59647         * html/shadow/DateTimeFieldElements.cpp:
59648         If a placeholder stirng is empty, use a sequence of "-".
59649         (WebCore::DateTimeDayFieldElement::create):
59650         (WebCore::DateTimeMonthFieldElement::create):
59651         (WebCore::DateTimeYearFieldElement::create):
59652
59653 2012-10-02  MORITA Hajime  <morrita@google.com>
59654
59655         https://bugs.webkit.org/show_bug.cgi?id=98134
59656         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59657
59658         Reviewed by Dimitri Glazkov.
59659
59660         matchScopedAuthorRules() did have some optimization which only
59661         makes sense for heavily nested shadow tree. However, we don't see
59662         such type of usage of Shadow DOM and this looks premature
59663         optimization. This change unified its triple for loop into one,
59664         which makes the code much simpler.
59665
59666         No new tests. Covered by existing tests.
59667
59668         * css/StyleResolver.cpp:
59669         (WebCore::StyleResolver::matchScopedAuthorRules):
59670
59671 2012-10-02  Kent Tamura  <tkent@chromium.org>
59672
59673         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59674         https://bugs.webkit.org/show_bug.cgi?id=98229
59675
59676         Reviewed by Kentaro Hara.
59677
59678         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59679         Localizer member functions.
59680         They still have some common code. We'll address it later.
59681
59682         No new tests. This doesn't change any behavior.
59683
59684         * platform/text/Localizer.h:
59685         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59686         * platform/text/Localizer.cpp:
59687         (WebCore::Localizer::dateTimeFormatWithSecond):
59688         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59689         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59690         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59691
59692         * html/DateTimeInputType.cpp:
59693         (WebCore::DateTimeInputType::setupLayoutParameters):
59694         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59695         * html/DateTimeLocalInputType.cpp:
59696         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59697
59698 2012-10-03  Kent Tamura  <tkent@chromium.org>
59699
59700         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59701         https://bugs.webkit.org/show_bug.cgi?id=98228
59702
59703         Reviewed by Kentaro Hara.
59704
59705         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59706         constructor. This change improves code size and runtime cost.
59707
59708         No new tests. This doesn't change user-visible behavior.
59709
59710         * html/shadow/DateTimeEditElement.cpp:
59711         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59712         (WebCore::DateTimeEditBuilder::stepRange):
59713         Added. A helper to access m_parameters.stepRange.
59714         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59715         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59716         Add m_parameters.
59717         (WebCore::DateTimeEditBuilder::needMillisecondField):
59718         Use stepRange() instead of m_stepRange.
59719         (WebCore::DateTimeEditBuilder::visitField):
59720         Use m_parameters.placeholderFor*.
59721         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59722         Use stepRange() instead of m_stepRange.
59723         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59724         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59725
59726 2012-10-02  Kent Tamura  <tkent@chromium.org>
59727
59728         Implement LocaleICU::dateFormat
59729         https://bugs.webkit.org/show_bug.cgi?id=98118
59730
59731         Reviewed by Hajime Morita.
59732
59733         http://trac.webkit.org/changeset/130127 introduced
59734         Localizer::dateFormat, and this is its implementation for LocaleICU
59735         classs. The code is going to be used when
59736         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59737
59738         No new tests. The function is not used yet.
59739
59740         * platform/text/LocaleICU.cpp:
59741         (WebCore::LocaleICU::dateFormat):
59742         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59743         knows various format information.
59744         * platform/text/LocaleICU.h:
59745         (LocaleICU): Add m_dateFormat to cache the format string.
59746
59747 2012-10-02  Kent Tamura  <tkent@chromium.org>
59748
59749         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59750         https://bugs.webkit.org/show_bug.cgi?id=98116
59751
59752         Reviewed by Hajime Morita.
59753
59754         http://trac.webkit.org/changeset/130127 introduced
59755         Localizer::dateFormat, and this is its implementation for LocaleICU
59756         classs. The code is going to be used when
59757         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59758
59759         No new tests. The function is not used yet.
59760
59761         * platform/text/mac/LocaleMac.h:
59762         (LocaleMac): Declare m_dateFormat.
59763         * platform/text/mac/LocaleMac.mm:
59764         (WebCore::LocaleMac::dateFormat): Implemented.
59765
59766 2012-10-02  Kent Tamura  <tkent@chromium.org>
59767
59768         [Chromium-Win] Implement LocaleWin::dateFormat
59769         https://bugs.webkit.org/show_bug.cgi?id=98117
59770
59771         Reviewed by Kentaro Hara.
59772
59773         http://trac.webkit.org/changeset/130127 introduced
59774         Localizer::dateFormat, and this is its implementation for LocaleICU
59775         classs. The code is going to be used when
59776         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59777
59778         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59779
59780         * platform/text/LocaleWin.cpp:
59781         (WebCore::parseDateFormat):
59782         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59783         (WebCore::appendAsLDMLLiteral):
59784         A helper function to make a literal string for LDML.
59785         (WebCore::convertWindowsDateFormatToLDML):
59786         Creates an LDML format from a parsed date format tokens.
59787         (WebCore::LocaleWin::dateFormat):
59788         Implemented. This uses convertWindowsDateFormatToLDML.
59789         (WebCore::LocaleWin::dateFormat):
59790         Added for testing. The source windows format is specified as a function
59791         argument.
59792         * platform/text/LocaleWin.h:
59793         (LocaleWin): Declare m_dateFormat and dateFormat().
59794
59795 2012-10-02  Ian Vollick  <vollick@chromium.org>
59796
59797         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59798         https://bugs.webkit.org/show_bug.cgi?id=98219
59799
59800         Reviewed by Dean Jackson.
59801
59802         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59803
59804         No new tests. No change in functionality.
59805
59806         * platform/graphics/chromium/Extensions3DChromium.h:
59807         (WebCore::Extensions3DChromium::isNVIDIA):
59808
59809 2012-10-02  Anders Carlsson  <andersca@apple.com>
59810
59811         Try to fix the Snow Leopard build.
59812
59813         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59814
59815 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59816
59817         Add htons/htonl definitions and implementations
59818         https://bugs.webkit.org/show_bug.cgi?id=98054
59819
59820         Reviewed by Darin Adler.
59821
59822         Update users of htons and friends to use new wtf/ByteOrder.h header.
59823
59824         No new tests - just refactoring.
59825
59826         * platform/graphics/WOFFFileFormat.cpp:
59827         * platform/graphics/chromium/VDMXParser.cpp:
59828
59829 == Rolled over to ChangeLog-2012-10-02 ==